PDA

View Full Version : سوال: اعمال تغییرات dataGridView روی بانک



mehran63
جمعه 19 آبان 1391, 10:42 صبح
سلام
میخوام اطلاعات بانک رو در dataGridView نشان بدهم و اگر مقدا هر کدام از فیلدهای روی dataGridView رو تغییر دادم با یک کلیک این update رو هم تو بانک منظور بشه هم تو خوده dataGridView تغییر جدید نشان داده شود. کد زیر رو نوشتم ولی هیچ کاری نشون نمیده فقط انگار dataGridView رو رفرش میکنه

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand com = new SqlCommand();
string str = "Data Source=localhost; initial Catalog=db; Integrated Security=True";
con.ConnectionString = str;
com.Connection = con;
com.CommandText = "select * from mytb";
//SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.SelectCommand = com;
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
da.Update(ds);
con.Close();
}

mehran63
جمعه 19 آبان 1391, 18:15 عصر
یکی بگه مشکل چیه؟؟؟

ma.rad
جمعه 19 آبان 1391, 18:27 عصر
خب سوالتون تکراریه ،چرا جستجو نمی کنید:
http://barnamenevis.org/search.php?searchid=1395968

mehran63
جمعه 19 آبان 1391, 19:38 عصر
جستجو کردم
لینکی که گذاشتید کار نمیکنه

mehran63
شنبه 20 آبان 1391, 10:20 صبح
یکی بگه مشکل از چیه

matin.soft
شنبه 20 آبان 1391, 11:48 صبح
سلام دوست عزیز
شما از کد زیر استفاده کن ببین جواب می گیری:
sqlbindingsource.endedit();
sqlDa.update();

من معمولاً از این دو خط کد برای آپدیت دیتاگرید استفاده می کنم و جواب می ده.
موفق باشید.

mehran63
شنبه 20 آبان 1391, 12:12 عصر
sqlbindingsource.endedit(); رو نمیشناسه

matin.soft
شنبه 20 آبان 1391, 13:06 عصر
sqlbindingsource.endedit(); رو نمیشناسه
دوست عزیز شما وقتی دیتاگریدتونرو به دیتاتیبل بایند می کنید یه databinding source اتومات به فرمتون اد می شه که اگه بعد از اعمال تغییرات databinding source.endedit() کنید بعدشم dataadapter.update() تغییرات اعمال می شه.

mehran63
یک شنبه 21 آبان 1391, 09:40 صبح
اگه یه نمونه سورس بزارید ممنون میشوم

mehran63
سه شنبه 30 آبان 1391, 11:42 صبح
فکر نکنم این چیزی که خواستم زیاد چیز خاص و غیر عادی تو برنامه نویسی باشه حداقل تو VB که این شکلی بود. مطمئنا تا حالا خیلیاتون این کار رو تو C# انجام دادین. از دوستتان میخوام تا راهنماییم کنن این مشکل رو باید هر چه سریعتر حل کنم هر چی سرچ هم کردم به نتیجه نرسیدم. اگه لطف کنید یه نمونه سورس هم بزارید که عالی است

mehran63
چهارشنبه 08 آذر 1391, 11:24 صبح
کسی نیست راهنمایی کنه

lahiji
چهارشنبه 08 آذر 1391, 12:58 عصر
سلام
میخوام اطلاعات بانک رو در dataGridView نشان بدهم و اگر مقدا هر کدام از فیلدهای روی dataGridView رو تغییر دادم با یک کلیک این update رو هم تو بانک منظور بشه هم تو خوده dataGridView تغییر جدید نشان داده شود. کد زیر رو نوشتم ولی هیچ کاری نشون نمیده فقط انگار dataGridView رو رفرش میکنه

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand com = new SqlCommand();
string str = "Data Source=localhost; initial Catalog=db; Integrated Security=True";
con.ConnectionString = str;
com.Connection = con;
com.CommandText = "select * from mytb";
//SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.SelectCommand = com;
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
da.Update(ds);
con.Close();
}

سلام
شما موقعی که تغییرات رو اعمال می کنه در گرید ویو دیگه نباید ویو رو دوباره fill کنی
اگر دوباره fill بشه همون اطلاعات قبلی رو نشون میده

پس نتیجه می گیریم که توی کامندت فقط update رو بنویس و برای اینکه تغییرات اعمال شده رو نشان بدی آن را دوباره fill کن . یعنی اول update بعدش fill کن

والسلام


موفق باشی