PDA

View Full Version : کنترل تغییرات در دیتاگرید



امیر تورانی
دوشنبه 28 آذر 1384, 11:43 صبح
سلام
با چه کدی میشه فهمید که اطلاعات در یک دیتاگرید تغییر ، حذف یا اضافه شده ؟

asilverisis
دوشنبه 28 آذر 1384, 14:11 عصر
سلام




if Dataset11.HasChanges then
'your Code
End if

asilverisis
دوشنبه 28 آذر 1384, 14:18 عصر
سلام

اگر دقیقتر می خوای

تغییر



Dataset11.GetChanges(DataRowState.Modified)



حذف :




Dataset11.GetChanges(DataRowState.Deleted)



اضافه :




Dataset11.GetChanges(DataRowState.Added)



موفق و موید

امیر تورانی
دوشنبه 28 آذر 1384, 15:25 عصر
سلام

اگر دقیقتر می خوای

تغییر



Dataset11.GetChanges(DataRowState.Modified)



حذف :




Dataset11.GetChanges(DataRowState.Deleted)



اضافه :




Dataset11.GetChanges(DataRowState.Added)



موفق و موید
ممنون از پاسختون
ولی این کد جواب نمیده

sh_mohsen taki
دوشنبه 28 آذر 1384, 23:16 عصر
با سلام
قربونت برم داداش اینکه کاری نداره
یک فیلد به بانکت اضافه کن که یک بایت باشه و وقتی اطلاعات رو تغییر دادی اونو یک کن
حالا وقتی میخوای ببینی تغییر کرده یا نه اول ببین یک هست اگه یک شده تغییرات رو انجام بده سپس اونو صفرش کن این به صرفه ترین راه با کمترین واکشی رکورده ولی میشه سطر تغییر یافته رو هم در یک باک ذخیره کنی که یک کم حجم داده رد و بدل شده بالاتر میره

asilverisis
سه شنبه 29 آذر 1384, 00:28 صبح
سلام
امکان نداره جواب نده
چون من دقیقا توی پروژه های خودم از اونا استفاده می کنم
اینو امتحان کن



Dim d As New DataSet
If d.Tables(0).GetChanges(DataRowState.Added).Rows.Co unt > 0 Then
MsgBox(d.Tables(0).GetChanges(DataRowState.Added). Rows.Count & " Records Added. ")
End If

asilverisis
سه شنبه 29 آذر 1384, 00:32 صبح
با سلام
قربونت برم داداش اینکه کاری نداره
یک فیلد به بانکت اضافه کن که یک بایت باشه و وقتی اطلاعات رو تغییر دادی اونو یک کن
حالا وقتی میخوای ببینی تغییر کرده یا نه اول ببین یک هست اگه یک شده تغییرات رو انجام بده سپس اونو صفرش کن این به صرفه ترین راه با کمترین واکشی رکورده ولی میشه سطر تغییر یافته رو هم در یک باک ذخیره کنی که یک کم حجم داده رد و بدل شده بالاتر میره


سلام


شما درست میفرمایید


ولی چه کاریه وقتی خود Dataset این امکانات رو داره !!؟

ضمنا سوال ایشون کنترل تغییرات توی دیتا گرید بود اگر بخوای این کار رو انجام بدی باید یه مقدار کد دیگه هم بنویسی که اون فیلد رو مقدار دهی کنه

به نظر من عاقلانه نیست

sh_mohsen taki
سه شنبه 29 آذر 1384, 09:48 صبح
با سلام
آخه وقتی ایشون داره به روز میرسونه یعنی تغییر کرده دیگه نه؟
اونوقت چه احتیاجی به چک کردن داره جانم
منظور من مال وقتیه که اطلاعات تغییر کنه و مثلا فرم بسته بشه یا به هر صورت به اوون دیتا ست دسترسی وجود نداشته باشه
اونوقت باید از اوون روش استفاده کنه نه؟؟؟؟؟؟؟

امیر تورانی
سه شنبه 29 آذر 1384, 21:38 عصر
سلام
امکان نداره جواب نده
چون من دقیقا توی پروژه های خودم از اونا استفاده می کنم
اینو امتحان کن



Dim d As New DataSet
If d.Tables(0).GetChanges(DataRowState.Added).Rows.Co unt > 0 Then
MsgBox(d.Tables(0).GetChanges(DataRowState.Added). Rows.Count & " Records Added. ")
End If


این کد تا وقتی که رکورد add شده باشه مشکلی نداره ولی اگر نشده باشه error میده !

asilverisis
شنبه 03 دی 1384, 00:06 صبح
سلام
راه اول استفاده از Try ..Catch
هستش

راه دوم




If Not d.Tables(0).GetChanges(DataRowState.Added) Is nothing Then
If d.Tables(0).GetChanges(DataRowState.Added).Rows.Co unt > 0 Then
MsgBox(d.Tables(0).GetChanges(DataRowState.Added). Rows.Count & " Records Added. ")
End If

End If