14-08-24, 01:08 AM
(آخر تعديل لهذه المشاركة : 14-08-24, 01:30 AM {2} بواسطة salamandal.)
(13-08-24, 11:40 PM)annagui كتب : السلام عليكم ورحمة الله وبركاته . اساتذتي الكرام بفضل الله و عونكم اتممت مشروعي شغال 100% لاكن عند التحزيم ظهرت معي مشكلتين مع العلم اني اتعامل مع قاعدة بيانات من نوع (mdb)
الاولى عند الظغط على زر تعديل البيانات تظهر معي هذه الرسالة : (operation must use an updateable query)
وهذا كود التعديل
كود :
زر التعديل
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
conn.Open()
Dim table As New DataTable("annagui")
Dim rs As New OleDb.OleDbDataAdapter("update annagui SET nom ='" & TextBox2.Text & "',prenom ='" & TextBox3.Text & "',date_de_naissance ='" & DateTimePicker1.Value.ToString("dd/MM/yyyy") & "',lieu_de_naissance ='" & TextBox4.Text & "',sex ='" & ComboBox1.Text & "',numero_passport ='" & TextBox5.Text & "',date_validation ='" & DateTimePicker2.Value.ToString("dd/MM/yyyy") & "',date_expired ='" & DateTimePicker3.Value.ToString("dd/MM/yyyy") & "',age ='" & TextBox6.Text & "',cin ='" & ComboBox2.Text & "',numero_cin ='" & TextBox7.Text & "',autre_nationalite ='" & ComboBox3.Text & "',nom_pere ='" & TextBox8.Text & "',nom_grand_pere ='" & TextBox9.Text & "',nom_mere ='" & TextBox10.Text & "',prenom_mere ='" & TextBox11.Text & "',profession ='" & TextBox12.Text & "',qualite ='" & ComboBox4.Text & "',email ='" & TextBox13.Text & "',adresse_uae ='" & ComboBox5.Text & "',tel_uae ='" & TextBox14.Text & "',etat_civil ='" & ComboBox6.Text & "',nom_epou ='" & TextBox15.Text & "',prenom_epou ='" & TextBox16.Text & "',validation ='" & DateTimePicker4.Value.ToString("dd/MM/yyyy") & "',expired ='" & DateTimePicker5.Value.ToString("dd/MM/yyyy") & "',remarque ='" & TextBox17.Text & "',r_sex ='" & TextBox18.Text & "',r_etat ='" & TextBox19.Text & "' Where id=" & TextBox1.Text & "; ", conn)
rs.Fill(table)
rs.Dispose()
MsgBox("تم تحديث البيانات بنجاح ", vbInformation, "تحديث")
conn.Close()
Form2.load_data()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
في الاستعلامات التي نقوم بها على الجداول نستخدم التعليمة Update لتحديث السجلات وهي ليست مخصصة للقراءة اي انها لا تعود بأي سجلات ExecuteNonQuery
على النقيض من اختها التعليمة Select فهي مخصصة للقراءة وتعود بسجلات ExecuteReader
و كبداية ارى ان الخطأ ربما يكون في السطرين التاليين (لانه لا حاجة لاستخدام DataTable)
كود :
Dim table As New DataTable("annagui")
rs.Fill(table)
'اضافة سطر جديد لتنفيذ الاستعلام
rs.ExecuteNonQuery()نصيحة : لا تستخدم التعليمة Try عند مرحلة تجريب الكود حتى تتمكن من تحديد مناطق الخطأ في الكود
