تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] سؤال حول الخاصية RejectChanges في ADO.NET
#6

السلام عليكم ورحمة الله

لم أتعامل مع الأمر RejectChanges

لكن هذا كود من أحد فورمات مشروع أحد الأخوة الله يذكره بالخير، إن شاء الله يفيدك

ستلاحظ أن الحقل id في الداتاجريد عند إضافة سطر جديد لا يحتوي شيء
وهذا طبيعي لأن الترقيم يتم في قاعدة البيانات لكن سترى القيمة بعد التحديث
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim conn 
As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Database1.accdb;")
    
Dim myDatatable As New DataTable
    Dim sql 
As String "SELECT * FROM [table1] "

    
Private Sub Form1_Load(sender As System.ObjectAs System.EventArgsHandles MyBase.Load
        
' قراءة قاعدة البيانات '
        
ReadDatabase()

    
End Sub


    
' قراءة قاعدة البيانات '
    
Private Sub ReadDatabase()
        
Using da As New OleDbDataAdapter(sqlconn)
            
myDatatable.Clear() ' إفراغ الداتاتابل '
            
da.Fill(myDatatable)
            
Me.DataGridView1.DataSource myDatatable
        End Using
    End Sub


    
' إضافة بيانات للداتاتابل فقط '
    
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click

        
' إضافة سطر جديد '
        
Dim NewRow As DataRow
        NewRow 
myDatatable.NewRow
        
'NewRow("id") = ### لا يستخدم هذا السطر إذا كان الترقيم تلقائي '
        
NewRow("name") = Me.TextBox1.Text

        
' إضافته للداتاتابل '
        
myDatatable.Rows.Add(NewRow)
        
Me.DataGridView1.Refresh()

        
MsgBox("تم إضافة البيانات للداتاتابل وليس قاعدة البيانات")

    
End Sub


    
' التراجع عن التحديثات '
    ' بشرط لم يتم عمل تحديث لقاعدة البيانات '
    
Private Sub Button2_Click(sender As System.ObjectAs System.EventArgsHandles Button2.Click
        
If MsgBox("هل تريد بالفعل التراجع عن كل التعديلات التي قمت بها" vbNewLine _
                  
"على البيانات التي تمت على الداتاتابل؟" _
                  
MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then

            
' عمل تراجع على الداتاتابل '
            
myDatatable.RejectChanges()

            
MsgBox("تم التراجع عن جميع التعديلات" vbNewLine _
                   
"التي تمت على الداتاتابل")

        
End If
    
End Sub


    
' لتحديث قاعدة البيانات بشكل نهائي '
    
Private Sub Button3_Click(sender As System.ObjectAs System.EventArgsHandles Button3.Click
        
If MsgBox("هل تريد تطبيق التعديل التي قمت بها" vbNewLine _
                  
"على البيانات في قاعدة البيانات؟" vbNewLine _
                   
"إنتبه: لن تتمكن من استعادة البيانات السابقة"MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then

            Using da 
As New OleDbDataAdapter(sqlconn)
                
Using builder As New OleDbCommandBuilder(da)
                    
da.Update(myDatatable)
                
End Using
            End Using

            
' قراءة قاعدة البيانات '
            
ReadDatabase()

            
MsgBox("تم تحديث قاعدة البيانات بآخر التعديلات" vbNewLine _
                   
"التي تمت على الداتاتابل")

        
End If
    
End Sub


End 
Class 

الرد }}}
تم الشكر بواسطة: السندبااد


الردود في هذا الموضوع
RE: سؤال حول الخاصية RejectChanges في ADO.NET - بواسطة الوليد ☺ - 05-11-14, 02:45 PM


التنقل السريع :


يقوم بقرائة الموضوع: