مشكلة عدم التخزين أو التعديل في قاعدة بيانات MS Access

الكثير منا يستخدم قواعد بيانات SQL Server أثناء برمجته وكود بتعديل بيانات معينة ببساطة سيكون كالتالي

 

Using conn As New SqlConnection(My.Settings.AwqafDBConnectionString1)
Dim cmd As SqlCommand = conn.CreateCommand()
cmd.CommandText="UPDATE students SET sname=@sname,birthdate=@birthdate,address=@address,tel=@tel,degree=@degree where sname=@sname"
cmd.Parameters.AddWithValue("@sname", Me.txtname.Text)
cmd.Parameters.AddWithValue("@birthdate", Me.txtbirthdate.Text)
cmd.Parameters.AddWithValue("@address", Me.txtaddress.Text)
cmd.Parameters.AddWithValue("@tel", Me.txtTel.Text)
cmd.Parameters.AddWithValue("@degree", Me.txtdegree.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Using

ولكن هذه الطريقة لن تنجح في حال تم استخدام قواعد بيانات Access، فهو لن يعطي خطأ برمجي ولكن لن يقوم بحفظ التعديلات في قاعدة البيانات ولحل هذه المشكلة سيتم إزالة المتغيرات واستبدالها ب ؟ مع مراعاة ترتيب القيم التي ستعطي للمتغيرات حسب الترتيب التي عليه في جمله الاستعلام وذلك بالطريقة التالية

 

Using conn As New OleDbConnection(My.Settings.AwqafDBConnectionString1)
Dim cmd As OleDbCommand = conn.CreateCommand()
cmd.CommandText="UPDATE students SET birthdate=?,address=?,tel=?,degree=? where sname=?"
cmd.Parameters.AddWithValue("@birthdate", Me.txtbirthdate.Text)
cmd.Parameters.AddWithValue("@address", Me.txtaddress.Text)
cmd.Parameters.AddWithValue("@tel", Me.txtTel.Text)
cmd.Parameters.AddWithValue("@degree", Me.txtdegree.Text)
cmd.Parameters.AddWithValue("@sname", Me.txtname.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Using

ويفضل التقليل من استخدام قواعد البيانات Access لأن إمكانياتها محدودة جدا فمن استخدم قواعد بيانات SQL و قواعد بيانات Access سيلاحظ هذا الأمر وسيقرر دائما اللجوء إلى قواعد بيانات SQL أثناء برمجته

About the author

خليل سليم

Leave a Comment

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.