السلام عليكم ورحمه الله وبركاته
كيف الحال أخواني
بخصوص حذف سجل في قاعدة البيانات فأن جميع طرق الحذف التي شاهدتها تستخدم نفس الطريقة ونفس الكود تقريباً وهو كالتالي:
If MsgBox("هل تريد حذف السجل الحالي؟", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Cancel Then
Exit Sub
End If
Dim SavInto As New OleDb.OleDbCommand
Dim DataAdapter1 As New OleDbDataAdapter(SQLStr, Conn)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "Delete FRoM Table1 Where Name='" & Trim(TextBox3.Text) & "'"
Conn.Open()
SavInto.ExecuteNonQuery()
DataSet1.Clear()
DataAdapter1.Fill(DataSet1, "Table1")
Conn.Close()
MsgBox ("Done…")
وهذا الكود يعتبر جيد ولكن عند تشابه سجلين في حقل الاسم سيتم حذف الاثنين وهذا هي المشكلة والترقيم التلقائي لا ينفع ففيه بعض المشاكل لكن لا نريد التحدث عنها.
عندي فكره في تحديد السجل المراد حذفه ولكن حاولت تطبيقها ولم انجح لكن ساعرض لكم الفكرة عسى أن أحد الأخوة يستطيع تطبيقها عملي أو يعطينا فكرة أخرى للحذف بطريقة أكثر أحترافية من الطريقة التقليدية كثيرة المشاكل.
الفكرة هي حذف السجل بموقعه يعني باستخدام هذا الكود
Me.BindingContext(DataSet1, "Table1").Position
فهذا الكود ان استطعنا أن نقوم بالحذف بالاعتماد عليه فهو ممتاز جداً ولا يمكن أن يحذف أي سجل أخر غير السجل الحالي فهل من الممكن ذلك؟ وماهو الكود المناسب؟
وشكراً للجميع