PDA

View Full Version : ویرایش داده ها در data grid



papa_fal
دوشنبه 28 فروردین 1385, 08:05 صبح
با عرض سلام خدمت دوستان عزیز.
سوالی در زمینه ویرایش داده ها از طریق data grid
در یک برنامه web application دارم.
آیا روشی کوتاهتر به جز نوشتن قطعه کد برای هر فیلد در جدول مربوطه وجود ندارد.؟؟؟
خوب ما ممکن است که هزاران فیلد در جدولمان داشته باشیم.برای همه مسلما وقت ریادی می برد.
قطعه کد زیر برای ویرایش جدول customers نوشته شده.

ErrorMessage.Text = "";
SqlCommand updCommand = new SqlCommand();
updCommand.Connection = sqlConnection1;
updCommand.CommandText = "UPDATE Customers SET CompanyName = '" + ((TextBox)e.Item.Cells[3].Controls[0]).Text
+ "', ContactName = '" + ((TextBox)e.Item.Cells[4].Controls[0]).Text
+ "', ContactTitle = '" + ((TextBox)e.Item.Cells[5].Controls[0]).Text
+ "', Address = '" + ((TextBox)e.Item.Cells[6].Controls[0]).Text
+ "', City = '" + ((TextBox)e.Item.Cells[7].Controls[0]).Text
+ "', Region = '" + ((TextBox)e.Item.Cells[8].Controls[0]).Text
+ "', PostalCode = '" + ((TextBox)e.Item.Cells[9].Controls[0]).Text
+ "', Country = '" + ((TextBox)e.Item.Cells[10].Controls[0]).Text
+ "', Phone = '" + ((TextBox)e.Item.Cells[11].Controls[0]).Text
+ "', Fax = '" + ((TextBox)e.Item.Cells[12].Controls[0]).Text + "'"
+ " WHERE CustomerID = '" + ((TextBox)e.Item.Cells[2].Controls[0]).Text + "'";
updCommand.CommandType = CommandType.Text;

مسلما باید راه کوتاهتری داشته باشد.12 خط برای 12فیلد.!!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////در ضمن سوال دیگری داشتم.
این خط دستور چه کاری انجام می دهد.
updCommand.CommandType = CommandType.Text;


چون مربوط به هردو بحث می شدند.در این قسمت مطرح کردم.ممنون می شم که مدیر بخش لطف کنند و حذفش نکنند.

iekrang
دوشنبه 28 فروردین 1385, 08:24 صبح
منظورتون از راه کوتاهتر چیه؟!شما نیاز دارید که تمام فیلدها رو آپدیت کنید بنابراین تک تک اونها رو توی دستور آپدیت نوشتید!در صورتی که نیاز به تغییر فیلدی خاص دارید فقط کافیه اون فیلد خاص رو در کوئریتون ذکر کنید.
این دستور هم مشخص میکنه که نوع updateCommand شما Text هست.میتونه انواعی مثل استور پروسیجر و متن و ... داشته باشه.

nazaninam
دوشنبه 28 فروردین 1385, 19:49 عصر
اگه از siquel استفاده می کنید stored procedure راه منطقیه
ولی راهتون به کل منطقی نیست
شما سطر به سطر به روز کنید
یعنی در هر سطر یه button column برای ویرایش و بروز رسانی بگذارید که فقط سطر مربوط رو بروز کنه
برای نمونه هم به بخش اعمال متداول دیتاگرید مراجعه کنید