ورود

View Full Version : Update چند Rows بطور همزمان



nima59
جمعه 04 شهریور 1384, 14:01 عصر
سلام:
فرض کنید در یک فرم چندتا textbox داریم و یک datagrid.
textbox ها بوسیله databinding مقید به یک تیبل بانک اکسس شده اند.datagrid هم همینطور.
حالا چطوری وقتی محتویات datagrid را تغییر می دهیم (یا txtbox ها) با یک حرکت کل بانک رو آپدیت کنیم؟
در واقع dataset تغییر کرده ولی چطوری تغییرات رو آپدیت کنیم؟ با فرمان زیر من موفق نشدم :
خطای کوئری ارور میده!



Me.BindingContext(ds, "station").EndCurrentEdit()

da.Update(ds, "station")

omid_Ahmadi
جمعه 04 شهریور 1384, 16:28 عصر
خوب اگر DataSet تغییر کرده که فقط کافیه که تغییرات DataSet رو در بانک ذخیره کنی که اون هم با دستور Update مربوط به DataAdapter راحت انجام میشه!

nima59
جمعه 04 شهریور 1384, 18:24 عصر
اینکار رو میکنم ولی خطای Syntax error میده:(البته ارور در کوئری که خودش ایجاد کرده)




Me.BindingContext(ds, "station").EndCurrentEdit()
If ds.HasChanges() = True Then
Dim i As Single
i = da.Update(ds, "station")
ds.AcceptChanges()
myConnection.Close()

در ضمن چون textbox ها بایند شده هستند حتی اگر تغییری در اطلاعات ندم و فقط در میان رکوردها حرکت کنم بازهم ds.haschanghes=true میشود.

omid_Ahmadi
جمعه 04 شهریور 1384, 23:20 عصر
دستورهایی که CommandBuilder میسازه از لحاظ Syntax که هیچ اشتباهی نداره حتما مشکل از جای دیگه ایه. Errorای که تولید میشه رو اینجا بنویس.

nima59
شنبه 05 شهریور 1384, 14:50 عصر
ممنون مشکل حل شد
چون توی بانک access اسم فیلدها رو بصورت 2 قسمتی تعریف کرده بودم و از * برای سلکت استفاده میکردم نمی تونست کوئری رو درست بسازه!

ولی یک ایراد دیگه داره که در روند برنامه مشکلی ایجاد نمی کنه ولی خوب نباید باشه:
حرکت در میان رکوردها حتی اگر تغییری در اطلاعات ندیم بازهم dataset.haschanges رو مساوی ترو میکنه.اگر textbox ها رو از حالت مقید شده به داده ها (binding) خارج کنم اونوقت درست عمل میکنه.

مرسی