تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل بيانات عمود DataGridView دفعة واحدة
#1
السلام عليكم
إخواني الكرام
ما هــو الخطأ في الكود التالي، حيث يتم تعديل بيانات عمود DataGridView دفعة واحدة
ولكن المشكلة في ظهـور رسالة حسب عدد البيانات الموجودة في الصـف الدراسي المراد ترحيله إلى الصـف المقدم
والمفروض أنه عند الضغط على زر التعديل يتم تعديل البيانات دفعة واحدة، ومع وضع شرطين للترحيل:
الأول: أن يكون ناجح
الثاني: رقم الفصل مثلاً 2

أسف على السؤال فما زال أخوك مبتدئ، وأحاول أن أتعلم وكلما فشلتُ في الوصول إلى نتيجة أعرض المشكلة عليكم

كود :
      Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\DataBase\Data_Base.mdb;Persist Security Info=True")
       'تغيير حقل الصف
       Dim x As Integer = Val(dgv1.Rows.Count - 1)
       Dim i As Integer
       For i = 0 To x

           dgv1.Item(2, i).Value = ComboBox2.Text
           dgv1.Refresh()
       Next

       Dim sql As String = "Update TBL_students Set ClassID = @ClassID Where studentid = @studentid"
       Dim cm As New OleDbCommand(sql, con)
       With cm.Parameters
           .AddWithValue("@ClassID", ComboBox2.Text).DbType = DbType.String
           .AddWithValue("@studentid", dgv1.Rows(i).Cells(0).Value).DbType = DbType.String

       End With

       con.Open()
       cm.ExecuteNonQuery()
       con.Close()
       MsgBox("تم ترحيل الطلبـة الناجحين من الصـف  : " & " " & ComboBox1.Text & Chr(13) & " إلى الصــف : " & ComboBox2.Text & " * بنجــاح " & "", MsgBoxStyle.Information, "الإجـــراء")


       Next
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

جرب هذا الكود ، عسى أن ينفعك .. 
عدل عليه ما يناسب كودك (عدل فقط في الكود الموجود في الـ Buttn)

كود :
Dim strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\DataBase\Data_Base.mdb;Persist Security Info=True"
Public Function ExNonQuery(cmdText As String, ParamArray pParam As OleDbParameter()) As Integer

   Using pConn As New OleDbConnection(strCon)
       pConn.Open()

       Dim cmd As OleDbCommand = New OleDbCommand(cmdText, pConn)
       For Each p In pParam
           cmd.Parameters.Add(p)
       Next

       Dim Result As Integer = cmd.ExecuteNonQuery()

       Return Result
   End Using
End Function

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
   If DGV1.RowCount <= 0 Then Return

   Dim strEx As String

   For i = 0 To DGV1.RowCount - 1
       ' اذا عندك شي تريد تعدله في الداتاجريدفيو ضعه هنا

       ' ثم ضع شروط ترحيل البيانات هنا
       If (XXXXXX = ناجح / راسب) Then
           strEx = "Update TBL_students Set ClassID = @ClassID Where studentid = @studentid "

           ExNonQuery(strEx, New OleDbParameter("@ClassID", ComboBox2.Text),
                       New OleDbParameter("@studentid", DGV1(0, i).Value.ToString))
           ' بارمترات الحقول تضيفها بعدد الحقول التي تريد تعديلها
           ' تضيفها أولا على جملة الاستعلام ثم  على الفانكشن  في نهايته
           ' فاصلة ثم بارامتر جديد وهكذا
           ' مثلا لو أردت إضافة الاسم تعدل هكذا :

           'strEx = "Update TBL_students Set ClassID = @ClassID, [Name] = @Name  Where studentid = @studentid "

           'ExNonQuery(strEx, New OleDbParameter("@ClassID", ComboBox2.Text),
           '            New OleDbParameter("@studentid", DGV1(0, i).Value.ToString),
           '            New OleDbParameter("@Name", DGV1(1, i).Value.ToString))
           '  وهكذا ,,
       End If
   Next

   TryCast(DGV1.DataSource(), DataTable).Clear()

End Sub
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: مصمم هاوي
#3
(05-03-24, 05:22 PM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته

جرب هذا الكود ، عسى أن ينفعك .. 
عدل عليه ما يناسب كودك (عدل فقط في الكود الموجود في الـ Buttn)

كود :
Dim strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\DataBase\Data_Base.mdb;Persist Security Info=True"
Public Function ExNonQuery(cmdText As String, ParamArray pParam As OleDbParameter()) As Integer

   Using pConn As New OleDbConnection(strCon)
       pConn.Open()

       Dim cmd As OleDbCommand = New OleDbCommand(cmdText, pConn)
       For Each p In pParam
           cmd.Parameters.Add(p)
       Next

       Dim Result As Integer = cmd.ExecuteNonQuery()

       Return Result
   End Using
End Function

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
   If DGV1.RowCount <= 0 Then Return

   Dim strEx As String

   For i = 0 To DGV1.RowCount - 1
       ' اذا عندك شي تريد تعدله في الداتاجريدفيو ضعه هنا

       ' ثم ضع شروط ترحيل البيانات هنا
       If (XXXXXX = ناجح / راسب) Then
           strEx = "Update TBL_students Set ClassID = @ClassID Where studentid = @studentid "

           ExNonQuery(strEx, New OleDbParameter("@ClassID", ComboBox2.Text),
                       New OleDbParameter("@studentid", DGV1(0, i).Value.ToString))
           ' بارمترات الحقول تضيفها بعدد الحقول التي تريد تعديلها
           ' تضيفها أولا على جملة الاستعلام ثم  على الفانكشن  في نهايته
           ' فاصلة ثم بارامتر جديد وهكذا
           ' مثلا لو أردت إضافة الاسم تعدل هكذا :

           'strEx = "Update TBL_students Set ClassID = @ClassID, [Name] = @Name  Where studentid = @studentid "

           'ExNonQuery(strEx, New OleDbParameter("@ClassID", ComboBox2.Text),
           '            New OleDbParameter("@studentid", DGV1(0, i).Value.ToString),
           '            New OleDbParameter("@Name", DGV1(1, i).Value.ToString))
           '  وهكذا ,,
       End If
   Next

   TryCast(DGV1.DataSource(), DataTable).Clear()

End Sub

بارك الله فيك وجزاك كل خير
نجح الكود بفضل الله تعالى ثم بجهدك الطيب أستاذ طه
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  محتاج تعديل الكود لإضافتها فى موديل new_programer 1 94 01-05-24, 10:29 AM
آخر رد: تركي الحلواني
  [سؤال] طلب تعديل كود عرض بيانات xlsx ABDULLAH HASSAN 2 112 21-04-24, 03:58 PM
آخر رد: ABDULLAH HASSAN
  تعديل على فاتورة مبيعات خالد كامل1 4 142 26-03-24, 10:49 PM
آخر رد: خالد كامل1
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 182 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  تعديل كود ارسال صورة الى الواتس new_programer 2 204 21-03-24, 10:07 PM
آخر رد: new_programer
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 701 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  تعديل صب المجموع الكلي والمعدل والتقدير مصمم هاوي 3 195 19-03-24, 01:33 AM
آخر رد: مصمم هاوي
  استعلام select عن مجموعة بيانات Adel27213 1 267 15-03-24, 01:11 AM
آخر رد: justforit
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 130 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 191 06-03-24, 07:49 PM
آخر رد: احمد خطاب

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


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