با سلام
دوست عزیز چون شما با انک اطلاعاتی کار میکنید کارتون خیلی راحت تر شده و به راحتی به جوابتون نزدیک می شید چون فعلا سر ارسال مقدار از فرم اول به دوم هنوز به جواب بهینه نرسیدیم من از بیان راهکار به این صورت طرف نظر میکنم و اگه اجازه بدید زمانی که روشن بهینه رو حل کرید اگه مشتاق بودین براتون میگم
اما روش بهینه که گفتم شما در فرم دوم دکمه سیو دارید خوب دادهاتون رو که وارد کردین یا ویرایش کردین یا هر چی می خواهید با زدین دکمه سیو این داده ها در درون دیتا گرید ویو فرم اول یا والد برور رسانی بشه و دوست عزیز تنها نوشتن :
dv.update();
کارتون تکمیل نمی شه در ادامه کدشو خدممتون میگم خوب جالا دو روش برای فرم دوم داریم
یکی این که اطلاعات قبلی جدوال رو کلا پاک کنید و بعدا با استفاده از یه حلقه for رکورد به رکورد وارد جدوال کنید
راه دوم:
اینه که باز با forاز اول برسی کنید اگه اطلاعات بود در جدولتون بروز رسانی کنید و اگه نبود insert کنید که اونم با یه if ساده امکان پذیر هست
به نظر من که روش اول خوب هست بازم انتخاب با شما
خوب کد زیر برای دکمه سیو قرار بدید دقت کنید که من فیلد جدولم شامل idوname هست شما هم باید متناسب با فیلد جدولتون تغییرات اعمال کنید
int id;
string name;
for (int i = 0; i <= mydg.RowCount - 2; i++)
{
id = int.Parse(mydg["id", i].Value.ToString());
name = mydg["name", i].Value.ToString();
connec.Open();
comm.CommandText = "select count(*) from tblstudent" +
" where ID=" + id + "";
int m = int.Parse(comm.ExecuteScalar().ToString());
if (m > 0)
{
comm.CommandText = "Update tblstudent set name='" + name + "' where id=" + id + " ";
comm.ExecuteNonQuery();
}
else
{
comm.CommandText = "insert into tblstudent(id,name)values(" + id + ",'" + name + "')";
comm.ExecuteNonQuery();
}
connec.Close();
}
خوب اما مشکل اصلی شما که در بروز رسانی دیتا گرید ویو فرو اول یا همان والد هست
میتونید از رویداد فرو activeاستفاده کنید و کد های زیر رو درون یه متد قرار بدید و بعد تو رویداد فرم فراخوانی کنید
private void UpdateDG()
{
connec.Open();
comm.Connection = connec;
comm.CommandText = "select ID,SName,Cname from vwstudent";
ds.Clear();
da.SelectCommand = comm;
da.Fill(ds, "mytable");
connec.Close();
dg.Update();
for (int i = 0; i <= dg.RowCount - 2; i++)
dg[0, i].Value = i + 1;
}
خوب حالا کافیه که متد UpdateDG() رو تو رویداد فرم فراخوانی کنید