تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ما الخطأ في هذا الكود
#1
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       '--  DISTINCT جلب السجلات من الجدول رقم 1 بدون تكرار وذلك بإستخدام العبارة ---------------------------------------------------------------------------------------
       ' matricule فقط جلب الحقل
       ' النتيجة
       ' 0001
       ' 0002
       ' 0003
       Dim matricules As New DataTable
       da = New OleDbDataAdapter("SELECT DISTINCT [matricule] FROM Table1", conn)
       da.Fill(matricules) ' matricules تعبئة الجدول
       ' matricule يحتوي على ثلاث سجلات ، كل سجل يحتوي على عامود واحد فقط وهو  matricules الآن الجدول
       '-----------------------------------------------------------------------------------------

       conn.Open() ' لأنه يحتاج إلى فتح الإتصال Me.Insert_New_Row_In_Table2 فتح الإتصال قبل الدول للحلقة لإستخدام الأمر
       Dim TempTable As New DataTable
       For Each r As DataRow In matricules.Rows
           Dim SqlQry As String = "SELECT TOP 1 [matricule],[nom],[prenom],(SELECT [note] From Table1 WHERE [matricule] = '" & r("matricule") & "' AND [mat] = 'S1M01') AS note_mat_A,(SELECT [note] From Table1 WHERE [matricule] = '" & r("matricule") & "' AND [mat] = 'S1M02') AS note_mat_B,(SELECT [note] From Table1 WHERE [matricule] = '" & r("matricule") & "' AND [mat] = 'S1M03') AS note_mat_C From Table1 WHERE [matricule] = '" & r("matricule") & "'"


           da = New OleDbDataAdapter(SqlQry, conn)
           TempTable.Clear()
           da.Fill(TempTable)
           If TempTable.Rows.Count > 0 Then
               With TempTable.Rows(0)
                   Me.Insert_New_Row_In_Table2(.Item("matricule"),
                                               .Item("nom"),
                                               .Item("prenom"),
                                               .Item("note_mat_A"),
                                               .Item("note_mat_B"),
                                               .Item("note_mat_C"))
               End With
           End If
       Next
       conn.Close() ' إغلاق الأتصال بعد الإنتهاء


       Dim Table2 As New DataTable
       da = New OleDbDataAdapter("SELECT  [matricule], [nom], [prenom], [note_mat_A], [note_mat_B], [note_mat_C] FROM Table2;", conn)
       da.Fill(Table2)

       DataGridView2.DataSource = Table2

   End Sub


   Private Sub Insert_New_Row_In_Table2(matricule As String,
                                        nom As String,
                                        prenom As String,
                                        note_mat_A As String,
                                        note_mat_B As String,
                                        note_mat_C As String)
       Try
           Dim cmd As New OleDbCommand() With {.Connection = conn}

           '- DELETE ---------------------------------------------------- ' حذف السجل إذا كان موجود مسبقاً
           Dim sqlQry_DELETE As String
           sqlQry_DELETE = "DELETE [N°], [matricule], [nom], [prenom], [note_mat_A], [note_mat_B], [note_mat_C] FROM Table2  WHERE [matricule] = '" & matricule & "';"
           cmd.CommandText = sqlQry_DELETE
           cmd.ExecuteNonQuery()
           '- INSERT ---------------------------------------------------- إدراج السجل الجديد من الجدول رقم 1
           Dim sqlQry_INSERT As String
           sqlQry_INSERT = "INSERT INTO Table2 ( [matricule], [nom], [prenom], [note_mat_A], [note_mat_B], [note_mat_C])  VALUES ('" & matricule & "', '" & nom & "', '" & prenom & "', '" & note_mat_A & "', '" & note_mat_B & "', '" & note_mat_C & "')"
           cmd.CommandText = sqlQry_INSERT
           cmd.ExecuteNonQuery()
           '-------------------------------------------------------------

       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub

عند الضغط على الزر تظهر رسالة الخطأ التالية


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
   


كود :
  Me.Insert_New_Row_In_Table2(IIf(IsDBNull(.Item("matricule")), String.Empty, .Item("matricule")),
                           .Item("nom"),
                           .Item("prenom"),
                           .Item("note_mat_A"),
                           .Item("note_mat_B"),
                           .Item("note_mat_C"))

طبق الشرط الموجود في أول سطر على باقي الحقول
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري , sendbad100
#3
تسابق الكلمات وتتزاحم العبارات، لتنظم عقد الشّكر الذي تستحقه
جزاك الله خيرا
الرد }}}
تم الشكر بواسطة: عبدالله الدوسري


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 177 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 276 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 215 20-02-24, 12:00 AM
آخر رد: Kamil
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 211 19-01-24, 12:42 PM
آخر رد: Taha Okla
  شرح عن الخطأ attempted to read or write Adel27213 3 393 05-01-24, 01:01 AM
آخر رد: HALIM ELEULMA
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 478 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 444 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  [VB.NET] أين الخطأ فى تشغيل هذا التطبيق AhmedEissa 0 242 27-10-23, 04:05 PM
آخر رد: AhmedEissa
  [كود] ما الخطأ فى الـ Functions المستخدم فى vb.net 2010 AhmedEissa 9 509 21-10-23, 11:44 PM
آخر رد: Ahmed5
  رجاء التعديل على الكود المرفق - كلاس لعرض كود المورد new_programer 4 361 13-10-23, 01:47 AM
آخر رد: new_programer

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم