PDA

View Full Version : راه کوتاهتر برای اعمال دستور update در فیلدهای datagridview بدون نوشتن



mohammady2
شنبه 15 تیر 1387, 18:20 عصر
با سلام به دوستان
یه سوال در مورد update دارم .

یه جدول دارم که تا دلتون بخواد فیلداش زیاده وقتی توی دیتا گرید ویو نشون میدم میخوام با زدن دکمه ثبت تغییرات تغییرات رو ذخیره کنم .
حالا اگر بخوام برای تک تک فیلدها این دستور رو بنویسم خیلی طولانی میشه راه دیگه ای نیست؟


this.SqlDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@name", typeof(string)).SourceColumn = "name";

mohammady2
شنبه 15 تیر 1387, 22:11 عصر
مثلا در یک فرم برای آپدیت 3 تا جدول هر کدوم با ده بیستا فیلد کد نویسی خیلی برنامه رو سنگین میکنه

Sajjad.Aghapour
شنبه 15 تیر 1387, 23:16 عصر
اگه منظورت رو درست فهمیده باشم از کد زیر می تونی استفاده کنی


SqlCommandBuilder objBuilder = new SqlCommandBuilder(objdataAdapter);
objdataAdapter.Update(objDataSet);

m0rteza
شنبه 15 تیر 1387, 23:35 عصر
string str="update sql";
Dataset DS=new Dataset();
DataAdaptor DA=new DAtaadaptor(str,connectionSql);
DA.Fill(Ds,"Tbl");
datagrid.datasource=DS.table["tbl"]


البته حال نداشتم از سورس بگیرم ولی دقیقا همینه

bachebahal_1363
یک شنبه 16 تیر 1387, 09:43 صبح
خواهشا از تگ Code استفاده کنید :



string str="update sql";
Dataset DS=new Dataset();
DataAdaptor DA=new DAtaadaptor(str,connectionSql);
DA.Fill(Ds,"Tbl");
datagrid.datasource=DS.table["tbl"]

mohammady2
یک شنبه 16 تیر 1387, 17:56 عصر
جناب mOrteza اگه یه زحمتی بکشید سورس کدتون رو بدید ممنون میشم .کدتون رو با کمکی تغییرات به شکل زیر نوشتم اما مرتب توی هون محتوای str خطا میده .


string str = "UPDATE sql";
DataSet ds=new DataSet();
SqlDataAdapter DA=new SqlDataAdapter(str,this.SqlConnection1);
DA.Fill(ds,"mosh");
dataGridView1.DataSource = ds.Tables["mosh"];


و شما جناب sajjadlove کدتون خطا نداره اما تغییرات رو داخل دیتابیس اعمال نمیکنه.

Sajjad.Aghapour
یک شنبه 16 تیر 1387, 21:14 عصر
یه چیزی رو روشن کنید.شما می خواهید هر تغییری که در دیتا گرید دادید با زدن دکمه ثبت در دیتا بیس اعمال بشه؟
خوب اگه منظورتون اینه کد من کار می کنه.البته اسم جدولتون رو هم وارد کنید.یعنی(داخل رویداد کلیک بنویسید)....


SqlCommandBuilder objBuilder = new SqlCommandBuilder(objdataAdapter);
objdataAdapter.Update(objDataSet, "mosh");

mohammady2
یک شنبه 16 تیر 1387, 23:57 عصر
بله .خیلی ساده است من یک Datagridview دارم که چون تعداد فیلدهای جداولم زیاده نمیخوام تغییرات رو تک تک ذخیره کنم.
نمیدونم این امکان رو دارید که در قالب یه نمونه کوچیک این کار رو برای من انجام بدید.هر کار کردم نشد!!

از راهنماییهاتون ممنونم

mohammady2
دوشنبه 17 تیر 1387, 14:48 عصر
جناب sajjadlove حالا که شما اینقدر مطمئن هستید احتمالا منم که یه جای کارم مشکل داره .بهر حال منتظر جوابتون هستم .حتی الامکان در قالب یه برنامه کوتاه اگر بتونید آپلود کنید بسیار ممنون میشم.

Sajjad.Aghapour
دوشنبه 17 تیر 1387, 22:52 عصر
جناب sajjadlove حالا که شما اینقدر مطمئن هستید احتمالا منم که یه جای کارم مشکل داره .بهر حال منتظر جوابتون هستم .حتی الامکان در قالب یه برنامه کوتاه اگر بتونید آپلود کنید بسیار ممنون میشم.
این رو ببینید...

pars.engineer
چهارشنبه 26 تیر 1387, 02:13 صبح
سلام،






SqlCommandBuilder objBuilder = newSqlCommandBuilder(objdataAdapter);
objdataAdapter.Update(objDataSet);


متاسفانه روش فقط زماني كار مي كند كه اطلاعات از يك جدول واكشي شده باشد و هنگامي كه اطلاعات از چند جدول استخراج شده باشد كارايي ندارد.(كه معمولا همينطور است)

subsub
دوشنبه 31 تیر 1387, 01:15 صبح
سلام
من هم می‌خواستم دقیقاً همین ارتباط را بین دیتا گرید و بانک اطلاعاتی اکسس برقرار کنم که با تغییر دیتا گرید، محتویات بانک اطلاعاتی اکسس هم تغییر کند. چطوری می تونم این کار رو انجام بدم؟

با تشکر