PDA

View Full Version : ذخیره ی مقدار دیتا گرید ویو



reza erfani
پنج شنبه 08 دی 1390, 17:55 عصر
سلام
دوستان من خیلی گشتم ولی گیج شدم
اگر میشه به این سوال من یک پاسخ بدید که من به فرض یم فرم دارم که یک دیتا گرید ویو داره و یک دکمه من میخوام وقتی دکمه زده میشه اطلاعات تغییر داده شده زخیره بشه
دوستان لطفا من خیلی بلد نیستم کامل بنویسید قراره هر کدی بنویسیم رو لطفا بنویسید و توضیح بدید تا واقعا میخوام یاد بگیرم نه این که استفاده کنم
پیشاپیش خیلی ممنون از جوابتون

asma2010
پنج شنبه 08 دی 1390, 18:54 عصر
سلام فکر نمی کنم استفادهاز data grid view مناسب باشه سرعت رو پایین میاره. فکر می کنم روی وارد کردن مستقیم اطلاعات به دیتابیس کار کنید بهتر باشه

reza erfani
پنج شنبه 08 دی 1390, 21:42 عصر
والله من گیج شدم یکی میگه چرا مستقیم داده هارو وارد میکنید یکی هم میگه چرا با دیتا گرید وارد میکنی لطفا یکی کامل من رو راهنمایی کنه

gilas1368
پنج شنبه 08 دی 1390, 21:50 عصر
شما داده ها رو بریز توی یه گرید بعدم با استفاده از کد زیر به مقادیر داخل سطر جاری دسترسی پیدا کن

dataGridView1.CurrentRow.Cells[0].Value.ToString()

reza erfani
پنج شنبه 08 دی 1390, 22:46 عصر
شما داده ها رو بریز توی یه گرید بعدم با استفاده از کد زیر به مقادیر داخل سطر جاری دسترسی پیدا کن

dataGridView1.CurrentRow.Cells[0].Value.ToString()

خوبه حالا گفتم توضیح بدید وگر نه چی میشد
ممنون دوست من که جواب دادید ولی من چیزی نفهمیدم

gilas1368
جمعه 09 دی 1390, 12:16 عصر
دقیقا چه چیزی رو متوجه نشدین؟
شما اطلاعاتتون رو داخل گرید لود کردین و تغییرات مورد نظرتون رو هم دادین
حالا کافیه یه دستور Update بنویسین و مقادیر جدید رو با استفاده از کد بالا داخل دیتابیس ذخیره کنین
این کدا رو نگاه کن فکر کنم متوجه بشی:

int fid = Convert.ToInt32(dataGridViewX1.CurrentRow.Cells[0].Value.ToString());
int kid = Convert.ToInt32(dataGridViewX1.CurrentRow.Cells[1].Value.ToString());
string name = Convert.ToString(dataGridViewX1.CurrentRow.Cells[2].Value.ToString());
double total = Convert.ToDouble(dataGridViewX1.CurrentRow.Cells[3].Value.ToString());
int price = Convert.ToInt32(dataGridViewX1.CurrentRow.Cells[4].Value.ToString());
string kol = Convert.ToString(dataGridViewX1.CurrentRow.Cells[5].Value.ToString());
string tarikh = Convert.ToString(dataGridViewX1.CurrentRow.Cells[6].Value.ToString());
double kol1 = total * price;
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=db;Integrated Security=True");
SqlCommand com = new SqlCommand("update orders set fid=" + fid + ", kid=" + kid + ", name='" + name + "', total=" + total + ", price=" + price + ", kol=" + kol1 + ", tarikh='" + tarikh + "' where kid="+kid+" and fid="+fid, con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
con.Open();
da.Fill(dt);
MessageBox.Show("ثبت تغییرات با موفقیت انجام شد");
refresh();
con.Close();
این کدا تغییرات وارد شده توی گرید رو اول به نوع int32 تبدیل میکنه(مقادیر ععدی صحیح) بعد هم با دستور Update اونا رو جایگزین مقادیر موجود توی دیتابیس می کنه

reza erfani
جمعه 09 دی 1390, 19:53 عصر
حالا متوجه شدم فقط اگر میشه به صورت اکسس بنویسید ممنون میشم
ببخشید من تازه به این زبان کوچ کردم خیی زیاد بلد نیستم

Mahmoud Zaad
جمعه 09 دی 1390, 20:22 عصر
حالا متوجه شدم فقط اگر میشه به صورت اکسس بنویسید ممنون میشم
ببخشید من تازه به این زبان کوچ کردم خیی زیاد بلد نیستم

سلام
هر چی Sql می بینی رو تبدیل به Oledb کن در قسمت using ها هم اینو اضافه کن
using System.Data.Oledb
کانکشن استرینگ رو هم که باید تغییر بدی