PDA

View Full Version : سوال: نحوه صحیح Updateکردن



حامد فراست
شنبه 20 شهریور 1389, 12:23 عصر
با سلام من با استفاده از کد زیر یه جدول از Databaseرو Updateمیکنم ولی وقتی تو فرمهای دیگه سراغ اون مقدار های تغییر یافته میرم تغییرات را مشاهده نمیکنم چرا؟؟؟
[
PersonalbindingSource.Filter = "SubGroupID=" + Convert.ToInt32(current);
if (PersonalbindingSource.Count > 0)
{
DataRow[] personalrow = smSSchoolDataSet.Tables["Personal"].Select("SubGroupID='" + current + "'");
foreach (DataRow item in personalrow)
{
item["SubGroupID"] = "7";
item.AcceptChanges();
}
try
{
this.Validate();
PersonalbindingSource.EndEdit();
personalTableAdapter.Update(smSSchoolDataSet);
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}

حامد فراست
شنبه 20 شهریور 1389, 15:08 عصر
ای بابا این سومین سوالی هست که میپرسم و این دو روز و کسی جواب نمیده
:عصبانی++:
حالا خوبه سوال در حد مبتدی هستش:گیج:

اَرژنگ
شنبه 20 شهریور 1389, 15:26 عصر
ای بابا این سومین سوالی هست که میپرسم و این دو روز و کسی جواب نمیده
:عصبانی++:
حالا خوبه سوال در حد مبتدی هستش:گیج:
ممکنه که سوالتان در حد مبتدی باشد ولی روش و مقدار کد به اینکه بشینیم بهش نگاه کنیم نمیارزه.
اگر دیباگ کردن بلدید خودتان دیباگش کنید اگر هم نه دیباگ کردن را یاد بگیرید یا هم حداقل پروژه کامل را بفرستید.
تصحیح کد مبتدی اصلاً آسان نیست.

حامد فراست
شنبه 20 شهریور 1389, 16:09 عصر
اگه دقت کنیید (10 ثانیه دقت) (که نکردید)میبیند که کد حجم زیادی نداره که بخواید وقت صرف کنید
درضمن برا افزایش پست هام سوال طرح نکردم عزیز:چشمک:
دیباگ رو هم خوب بلدم این کارو هم کردم چون از تمام راهها رفتم و به نتیجه نرسیدم این سوال رو مطرح کردم شاید اونایی که تجربه دارن به این مشکل برخورد کرده باشند که این کد واضح چرا جواب نمیده

اَرژنگ
شنبه 20 شهریور 1389, 16:27 عصر
اگه دقت کنیید (10 ثانیه دقت) (که نکردید)میبیند که کد حجم زیادی نداره که بخواید وقت صرف کنید
درضمن برا افزایش پست هام سوال طرح نکردم عزیز:چشمک:
دیباگ رو هم خوب بلدم این کارو هم کردم چون از تمام راهها رفتم و به نتیجه نرسیدم این سوال رو مطرح کردم شاید اونایی که تجربه دارن به این مشکل برخورد کرده باشند که این کد واضح چرا جواب نمیده
اگر با دیباگ جلویه شما نمیتونید اشکالش را ببینید از ماها که حتی نمیتونیم این را تعقیب کنیم چه انتظاری میشه داشت؟
کدتان زیادی بخصوص است، روشهایه معمول را استفاده میکردید تعداد بیشتری میتونستند کمکتان کنند.
در ضمن اشاره‌ای به تعداد بالا رفتن پست نبود، اینکه مشکل دارید از پیچیدگی کد معلوم است، کدتان را ساده‌کنید به بقیه برایه اینکه مشکلتان را حل کنند کمک میکنید.

Kurdia
شنبه 20 شهریور 1389, 16:51 عصر
کلکل نکنید
می خواهی یه ردیف از جدول در دیتابیس رو آپدیت کنی؟؟
مثلا
نام: حسیت
نام خانوادگی: کرد

آپدیت بشه

نام: حسین
نام خانوادگی: کرد
من کدت رو درست متوجه نمی شم
دقیقا بگو می خواهی چیکار کنی؟؟

حامد فراست
شنبه 20 شهریور 1389, 19:37 عصر
یکی از روشهای معمول برای Update کردن که من هم استفاده کردم اینه


this.Validate();
PersonalbindingSource.EndEdit();
personalTableAdapter.Update(smSSchoolDataSet);



که باعث میشه خود دیتا بیس هم تغییرات رو بپذیره
روش دیگه که استفاده کردم و باعث میشه dataset رو Update کنه ایجادیک آرایه از DataRow های جدول مورد نظر است

DataRow[] personalrow = smSSchoolDataSet.Tables["Personal"].Select("SubGroupID='" + current + "'");
وبا یکForeachروی Itemهای DataRowرفتم و روشون تغییر لازم رو دادم و بعد با متدAcceptChangesسعی کردم تغیرات رو به dataset اعمال کنم
بقه کد هم مهم نیست
اصل کد همینه که اینجا گذاشتم

DataRow[] personalrow = smSSchoolDataSet.Tables["Personal"].Select("SubGroupID='" + current + "'");
foreach (DataRow item in personalrow)
{
item["SubGroupID"] = "7";
item.AcceptChanges();
}
try
{
this.Validate();
PersonalbindingSource.EndEdit();
personalTableAdapter.Update(smSSchoolDataSet);
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}
تا اینجا همه چیز خوبه .
ظاهرا جداولم Updateشده.
ولی
وقتی یک فرم جدید باز میکنم وتوی Load_Formاون دستور

personalTableAdapter.Fill
رو مینویسم
وقتی فرم لود میشه و بالا میادتغییرات رو داخل گرید اون فرم نمیبینم!!!!:ناراحت:
با تشکر از دوستان
اگه کد بازم توضیح خواست بگین

حامد فراست
شنبه 20 شهریور 1389, 23:01 عصر
با تشکر از شما دوستان گیر برنامه سر این بود
AcceptChanges(); با برداشتنش مشکل حل شد:خجالت::اشتباه:

Kurdia
شنبه 20 شهریور 1389, 23:01 عصر
لطفا این PDF رو مطالعه کنید

دانلود (http://kurdia.persiangig.com/Anjomanco/%DA%86%D9%87%D8%A7%D8%B1-%D8%B9%D9%85%D9%84-%D8%A7%D8%B5%D9%84%DB%8C.pdf)

حامد فراست
شنبه 20 شهریور 1389, 23:08 عصر
راستي علتش رو یاذم رفت بگم
باید این متد رو برای Dataset به کار می بردم نه برای DataRow!!!!:لبخند: