منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تعديل على استدعاء الدرجات حسب الاختيار
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمــة الله وبركاتــه
كلُّ عامٍ وأنتم بخير

تم تحديث المثال ونجحتُ في استدعاء درجـات المواد الدراسية بعد اختيار الصف من الليست بوكس
وتبقى المشكلة ما زالت قائمـة في استدعاء درجـات المواد الدراسية عند إختيـار رقم الفصل الدراسي (1 - 2- 3 - 4) من الكومبوكس
حيث أنه يتم استدعاء الدرجات حتى لو اخترتُ رقم (2)

المثال في المرفقات

[attachment=30056]
تم تحديث المثال
للرفــع
بصراحــــة عجزتُ عن معرفــة سبب الخطأ في هذا الكود
للعلم جربتُ جميـع المحاولات ولكن دون فائدة
كود :
  'Try
       ' هرض درجـات المواد في الداتا قريدفيو
       If Con.State = ConnectionState.Closed Then Con.Open()
       Dim dt As DataTable
       Using da = New OleDbDataAdapter("Select TBL_Student.IDStudent as رقم" & _
                                       ",TBL_Student.alqayd as [رقم القيد ]" & _
                                       ",TBL_Student.NameStudent as [اســـم الطالـــب ]" & _
                                       ",TBL_Student.IDClas as الصــف" & _
                                       "From TBL_Student " & _
                                       "where TBL_Student.IDClas=" & Val(listClas.SelectedItem.ToString()), Con)

           dt = New DataTable
           da.Fill(dt)
           DataGridView1.DataSource = dt
       End Using

       If Not String.IsNullOrEmpty(CombSemester.Text) AndAlso IsNumeric(CombSemester.Text) Then
           Using daCheck = New OleDbDataAdapter("Select IDStudent From TBL_Final1 where IDSemester=" & Val(CombSemester.Text), Con)
               Dim dtCheck As New DataTable
               daCheck.Fill(dtCheck)
               If dtCheck.Rows.Count > 0 Then
                   Using da2 = New OleDbDataAdapter("Select S.IDStudent, S.alqayd, S.NameStudent, S.IDClas, F.IDSemester, F.ON" & CombCourses.SelectedIndex + 1 & " as اعمال " & _
                                                   "From TBL_Final1 F right join TBL_Student S on F.IDStudent = S.IDStudent " & _
                                                   "where F.IDSemester=" & Val(CombSemester.Text) & " and S.IDClas=" & Val(listClas.SelectedItem.ToString()), Con)
                       Dim dt2 As New DataTable
                       da2.Fill(dt2)
                       DataGridView1.DataSource = dt2
                   End Using
               End If
           End Using
       End If

       FillDataGridView()

       'Catch ex As Exception
       'MessageBox.Show(ex.Message)
       'End Try


صــورة الخطأ في المرفقات ... يا أساتذة أرجــــــــــــو الاهتمام

[attachment=30058]
Try
' هرض درجـات المواد في الداتا قريدفيو
If Con.State = ConnectionState.Closed Then Con.Open()

Dim dt As DataTable
Using da As New OleDbDataAdapter("SELECT TBL_Student.IDStudent AS رقم, " & _
"TBL_Student.alqayd AS [رقم القيد], " & _
"TBL_Student.NameStudent AS [اســـم الطالـــب], " & _
"TBL_Student.IDClas AS الصــف " & _
"FROM TBL_Student " & _
"WHERE TBL_Student.IDClas = ?", Con)
da.SelectCommand.Parameters.AddWithValue("?", Val(listClas.SelectedItem.ToString()))
dt = New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
End Using

If Not String.IsNullOrEmpty(CombSemester.Text) AndAlso IsNumeric(CombSemester.Text) Then
Using daCheck As New OleDbDataAdapter("SELECT IDStudent FROM TBL_Final1 WHERE IDSemester = ?", Con)
daCheck.SelectCommand.Parameters.AddWithValue("?", Val(CombSemester.Text))
Dim dtCheck As New DataTable
daCheck.Fill(dtCheck)
If dtCheck.Rows.Count > 0 Then
Using da2 As New OleDbDataAdapter("SELECT S.IDStudent, S.alqayd, S.NameStudent, S.IDClas, F.IDSemester, F.ON" & (CombCourses.SelectedIndex + 1) & " AS اعمال " & _
"FROM TBL_Final1 F RIGHT JOIN TBL_Student S ON F.IDStudent = S.IDStudent " & _
"WHERE F.IDSemester = ? AND S.IDClas = ?", Con)
da2.SelectCommand.Parameters.AddWithValue("?", Val(CombSemester.Text))
da2.SelectCommand.Parameters.AddWithValue("?", Val(listClas.SelectedItem.ToString()))
Dim dt2 As New DataTable
da2.Fill(dt2)
DataGridView1.DataSource = dt2
End Using
End If
End Using
End If

FillDataGridView()

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Con.State = ConnectionState.Open Then Con.Close()
End Try
بارك الله فيك على اهتمامي الكبير
وأجرب الكود وأرد عليك
(13-04-25, 11:03 AM)قناص المدينة كتب : [ -> ]Try
   ' هرض درجـات المواد في الداتا قريدفيو
   If Con.State = ConnectionState.Closed Then Con.Open()
   
   Dim dt As DataTable
   Using da As New OleDbDataAdapter("SELECT TBL_Student.IDStudent AS رقم, " & _
                                      "TBL_Student.alqayd AS [رقم القيد], " & _
                                      "TBL_Student.NameStudent AS [اســـم الطالـــب], " & _
                                      "TBL_Student.IDClas AS الصــف " & _
                                      "FROM TBL_Student " & _
                                      "WHERE TBL_Student.IDClas = ?", Con)
       da.SelectCommand.Parameters.AddWithValue("?", Val(listClas.SelectedItem.ToString()))
       dt = New DataTable
       da.Fill(dt)
       DataGridView1.DataSource = dt
   End Using

   If Not String.IsNullOrEmpty(CombSemester.Text) AndAlso IsNumeric(CombSemester.Text) Then
       Using daCheck As New OleDbDataAdapter("SELECT IDStudent FROM TBL_Final1 WHERE IDSemester = ?", Con)
           daCheck.SelectCommand.Parameters.AddWithValue("?", Val(CombSemester.Text))
           Dim dtCheck As New DataTable
           daCheck.Fill(dtCheck)
           If dtCheck.Rows.Count > 0 Then
               Using da2 As New OleDbDataAdapter("SELECT S.IDStudent, S.alqayd, S.NameStudent, S.IDClas, F.IDSemester, F.ON" & (CombCourses.SelectedIndex + 1) & " AS اعمال " & _
                                                  "FROM TBL_Final1 F RIGHT JOIN TBL_Student S ON F.IDStudent = S.IDStudent " & _
                                                  "WHERE F.IDSemester = ? AND S.IDClas = ?", Con)
                   da2.SelectCommand.Parameters.AddWithValue("?", Val(CombSemester.Text))
                   da2.SelectCommand.Parameters.AddWithValue("?", Val(listClas.SelectedItem.ToString()))
                   Dim dt2 As New DataTable
                   da2.Fill(dt2)
                   DataGridView1.DataSource = dt2
               End Using
           End If
       End Using
   End If

   FillDataGridView()

Catch ex As Exception
   MessageBox.Show(ex.Message)
Finally
   If Con.State = ConnectionState.Open Then Con.Close()
End Try


بارك الله فيك أخي العزيز على المساعدة ولكن الكود يحتاج إلى تعديل:
1- عند الاختيار من listClas الصفوف الدراسية يتم استدعاء طلبة الصف في الداتا قريدفيو ... هذا تمام
2- كذلك عند الضغط على listClas يمتلي CombCourses المواد الدراسية الخاصة بالصف الدراسي .... وهذا تمام
3- المشكلة تتمثل في الآتي:
- المفروض عند اختيار مادة لا يتم عرض درجاتها في الداتا قريدفيو إلا بناء على رقم الامتحان من CombSemester
- ولو لم يتم رصد درجات المادة المختارة من CombCourses فلا يتم إفراغ الداتا قريدفيو من أسماء الطلبة
فلو لاحظت أنه عندما يتم إختيار امتحان من CombSemester لم يتم تسجيل درجاته يتم إفراغ الداتا قريدفيو من أسماء الطلبة وهذا خطأ
فكيف سيتم تسجيل الدرجات لهذه المادة ورقم الامتحان إذا تم إفراغ الداتا قريدفيو؟؟؟
هذا هو المطلوب
إقتباس :بارك الله فيك أخي العزيز على المساعدة ولكن الكود يحتاج إلى تعديل:
1- عند الاختيار من listClas الصفوف الدراسية يتم استدعاء طلبة الصف في الداتا قريدفيو ... هذا تمام
2- كذلك عند الضغط على listClas يمتلي CombCourses المواد الدراسية الخاصة بالصف الدراسي .... وهذا تمام
3- المشكلة تتمثل في الآتي:
- المفروض عند اختيار مادة لا يتم عرض درجاتها في الداتا قريدفيو إلا بناء على رقم الامتحان من CombSemester
- ولو لم يتم رصد درجات المادة المختارة من CombCourses فلا يتم إفراغ الداتا قريدفيو من أسماء الطلبة
فلو لاحظت أنه عندما يتم إختيار امتحان  من CombSemester  لم يتم تسجيل درجاته يتم إفراغ الداتا قريدفيو من أسماء الطلبة وهذا خطأ
فكيف سيتم تسجيل الدرجات لهذه المادة ورقم الامتحان إذا تم إفراغ الداتا قريدفيو؟؟؟
هذا هو المطلوب

السلام عليكم ورحمة الله وبركاته
أولا انا فاهم انت تقصد ايه بالظبط
ثانيا ممكن اعرف حضرتك رابط اسم المادة او كودها في جدول TBL_Final1 فين بالظبط ؟
اقصد اشرح لي ماذا يعني ON1 و ON2 وماذا يعني TO1 ,TO2  ؟
حتى استطيع مساعدتك
(14-04-25, 03:00 AM)princelovelorn كتب : [ -> ]
إقتباس :بارك الله فيك أخي العزيز على المساعدة ولكن الكود يحتاج إلى تعديل:
1- عند الاختيار من listClas الصفوف الدراسية يتم استدعاء طلبة الصف في الداتا قريدفيو ... هذا تمام
2- كذلك عند الضغط على listClas يمتلي CombCourses المواد الدراسية الخاصة بالصف الدراسي .... وهذا تمام
3- المشكلة تتمثل في الآتي:
- المفروض عند اختيار مادة لا يتم عرض درجاتها في الداتا قريدفيو إلا بناء على رقم الامتحان من CombSemester
- ولو لم يتم رصد درجات المادة المختارة من CombCourses فلا يتم إفراغ الداتا قريدفيو من أسماء الطلبة
فلو لاحظت أنه عندما يتم إختيار امتحان  من CombSemester  لم يتم تسجيل درجاته يتم إفراغ الداتا قريدفيو من أسماء الطلبة وهذا خطأ
فكيف سيتم تسجيل الدرجات لهذه المادة ورقم الامتحان إذا تم إفراغ الداتا قريدفيو؟؟؟
هذا هو المطلوب

السلام عليكم ورحمة الله وبركاته
أولا انا فاهم انت تقصد ايه بالظبط
ثانيا ممكن اعرف حضرتك رابط اسم المادة او كودها في جدول TBL_Final1 فين بالظبط ؟
اقصد اشرح لي ماذا يعني ON1 و ON2 وماذا يعني TO1 ,TO2  ؟
حتى استطيع مساعدتك

بارك الله فيك وجزاك كل كل خير على تجاوبك السريع واهتمامك المفيد

أولاً: جدول حفظ الدرجات -
اسم الجدول:  TBL_Final1
الحقول  
1- IDStudent  -  رقم الطالب - نوع الحقل رقمي
2- IDClas – رقم الصف - نوع الحقل نصي
3- IDSemester – رقم الامتحان - نوع الحقل رقمي  
4- on1 – أعمال المادة 1 - نوع الحقل رقمي
5- on2 – أعمال المادة 2 - نوع الحقل رقمي
6- on3 – أعمال المادة 3 - نوع الحقل رقمي
7- on4 – أعمال المادة 4 - نوع الحقل رقمي
8- on5 – أعمال المادة 5 - نوع الحقل رقمي
9- on6 – أعمال المادة 6 - نوع الحقل رقمي
10- on7 – مشروع ميداني المادة 7 - نوع الحقل رقمي (هذا الحقل لدرجة المشروع الميداني للفصل السادس فقط )
11- on8 – مشروع التخرج 8 - نوع الحقل رقمي (هذا الحقل لدرجة مشروع التخرج للفصل السادس فقط)

12- to1 – امتحان المادة 1 - نوع الحقل رقمي
13- to2 – امتحان المادة 2 - نوع الحقل رقمي
14- to3 – امتحان المادة 3 - نوع الحقل رقمي
15- to4 – امتحان المادة 4 - نوع الحقل رقمي
16- to5 – امتحان المادة 5 - نوع الحقل رقمي
17- to6 – امتحان المادة 6 - نوع الحقل رقمي
18- on7 – مشروع ميداني 7 - نوع الحقل رقمي (هذا الحقل لدرجة المشروع الميداني للفصل السادس فقط )
19- on8 – مشروع التخرج 8 - نوع الحقل رقمي (هذا الحقل لدرجة مشروع التخرج للفصل السادس فقط)

20- tr1 – مجموع أعمال + امتحان المادة 1 - نوع الحقل رقمي
21- tr2 – مجموع أعمال + امتحان المادة 2 - نوع الحقل رقمي
22- tr3 – مجموع أعمال + امتحان المادة 3 - نوع الحقل رقمي
23- tr4 – مجموع أعمال + امتحان المادة 4 - نوع الحقل رقمي
24- tr5 – مجموع أعمال + امتحان المادة 5 - نوع الحقل رقمي
25- tr6 – مجموع أعمال + امتحان المادة 6 - نوع الحقل رقمي
26- on7 – مجموع المشروع 7 - نوع الحقل رقمي (هذا الحقل لدرجة المشروع الميداني للفصل السادس فقط )
27- on8 – مجموع المشروع 8 - نوع الحقل رقمي (هذا الحقل لدرجة مشروع التخرج للفصل السادس فقط)

28-  total– مجموع درجات المواد الدراسية لكل طالب - نوع الحقل رقمي
29- FINAL– المعدل العام لكل طالب - نوع الحقل نصي
30-  takdeer– التقدير العام لكل طالب - نوع الحقل نصي (ممتاز – جيد جداً – جيد – مقبول - //)
31- mcount – عدد مواد الرسوب لكل طالب - نوع الحقل رقمي
32- result – النتيجة النهائيـة لكل طالب - نوع الحقل نصي (ناجح – دور ثان)

لكل مادة درجات أعمال - ودرجات امتحان  -  وجموع درجات الأعمال والامتحان
هذا هو كود الحفظ يعمل بكل ممتاز

كود :
   Private Sub Save_Grade()
       Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=" & Application.StartupPath & "\DataBase\Data_Base.accdb")
       If DataGridView1.Rows.Count = 0 Then Exit Sub
       con.Open()

       For i As Integer = 0 To DataGridView1.Rows.Count - 2
           Dim query As String = "SELECT * FROM TBL_Final1 WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
           Dim command As New OleDbCommand(query, con)
           command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(0).Value))
           command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(3).Value))
           command.Parameters.AddWithValue("?", CombSemester.SelectedItem.ToString())
           Dim reader As OleDbDataReader = command.ExecuteReader()
           If reader.HasRows Then
               reader.Close()
               query = "UPDATE TBL_Final1 SET ON" & CombCourses.SelectedIndex + 1 & " = ? WHERE IDStudent = ? AND IDClas = ? AND IDSemester = ?"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(5).Value))
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(0).Value))
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(3).Value))
               command.Parameters.AddWithValue("?", CombSemester.SelectedItem.ToString())
               command.ExecuteNonQuery()
           Else

               reader.Close()
               query = "INSERT INTO TBL_Final1 (IDStudent, IDClas, IDSemester, ON" & CombCourses.SelectedIndex + 1 & ") VALUES (?, ?, ?, ?)"
               command = New OleDbCommand(query, con)
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(0).Value))
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(3).Value))
               command.Parameters.AddWithValue("?", CombSemester.SelectedItem.ToString())
               command.Parameters.AddWithValue("?", Val(DataGridView1.Rows(i).Cells(5).Value))
               command.ExecuteNonQuery()
           End If
       Next
       con.Close()
       MsgBox("تم رصد درجــات الصــف : " & " " & listClas.Text & Chr(13) & " لمــادة : " & CombCourses.Text & " * بنجــاح " & "", MsgBoxStyle.Information, "الإجـــراء")

       ' إفراغ عمود درجات الأعمال
       For Each row As DataGridViewRow In DataGridView1.Rows
           row.Cells(5).Value = DBNull.Value
       Next

       ' عدم إضافة عمود بعد الوصول لآخر طالب
       For Each row As DataGridViewRow In DataGridView1.Rows
           If Not row.IsNewRow Then
               row.Cells(5).Value = DBNull.Value
           End If
       Next

   End Sub

******************************************************
في حدث CombCourses_SelectedIndexChanged
لو قمت بإلغاء صب FillCCourses - وفعلت صب Courses_Semester فإن درجات المواد الدراسية لا يتم استدعاءها
ولو قعلت صب FillCCourses  فالمشكلة تكمن في عدم استدعاء درجات المواد حسب رقم الامتحان

المطلـوب:
أولاً: اختيار رقم الامتحان من CombSemester
ثانياً: عند الضغط على عlistClas يتم أسماء الطلبـة في الداتاقريد فيو - كذلك استدعاء المواد الدراسية في CombCourses (وهذا تمام)
ثالثاً: عند اخيار مادة من CombCourses - المفروض يتم استدعاء درجات المواد حسب رقم الامتحان

انظر للمثال المحدث تظهر لك المشكلة جيداً
المشكلة فقط كيف يتم استدعاء درجات المواد الدراسية حسب رقم الامتحان

عند استدعاء أسماء الطلبـة في الداتا قريدفيو

المثال المحدث

[attachment=30060]

قبل قليل قمتُ بتعديل كود استدعاء درجات المواد الدراسية حسب رقم الامتحان المختار CombSemester وهــو شغال 101%
ولكن إذا لم توجد درجات امتحان في الجدول حسب رقم الامتحان المختار من الكومبوكس CombSemester فإنه يتم إفراغ الداتا قريدفيو
ولا ادري أين الخلل ؟!!!

كود :
Private Sub Courses_Semester()
        Try
            'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
            Dim arrListQuery As New ArrayList
            'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
            'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
            'Value ... SelectedIndices(i)
            For i As Integer = 0 To Me.listClas.Items.Count - 1
                If Me.listClas.GetSelected(i) Then
                    'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                    'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                    arrListQuery.Add( _
                        "SELECT TBL_Student.IDStudent, TBL_Student.alqayd, TBL_Student.NameStudent, TBL_Student.IDClas " & _
                        ", TBL_Final1.IDSemester " & _
                        ", TBL_Final1.ON" & CombCourses.SelectedIndex + 1 & " as أعمــال " & _
                        "FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent=TBL_Student.IDStudent " & _
                        "Where TBL_Student.IDClas=" & CInt(i + 1).ToString() & " AND TBL_Final1.IDSemester=" & Val(CombSemester.Text))
                End If
            Next

            '==========================
            'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
            Dim da As OleDb.OleDbDataAdapter
            da = New OleDbDataAdapter(Nothing, Con)
            'هنا تحديد متغير داتا سيت لتخزين البيانات
            Dim ds As New DataSet
            For i As Integer = 0 To arrListQuery.Count - 1
                If Not IsNothing(arrListQuery(i)) Then
                    'Assign the query string.
                    da.SelectCommand.CommandText = arrListQuery(i).ToString
                    'تعبئة مخزن البيانات من الاستعلام المحدد
                    da.Fill(ds, "Student")
                End If
            Next
            DataGridView1.DataSource = ds.Tables("Student")
            'تحديد بيانات الداتا قريد التي ستعبأ
            FillDataGridView()
            'Destroy object.
            'arrListQuery = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
السلام عليكم ورحمة الله وبركاته

جرب الدالتين التاليتين

كود :
   Private Sub FillStudent()
       Try

           'هنا متغير لحمل القيمة التي ستحدد أثناء النقر على البيان المختار من اللست بوكس
           Dim arrListQuery As New ArrayList

           'هنا حلقة فور نكست لتحدد القيم المختارة من اللست بوكس
           'لا ينبغي عليك استخدام فهرس القائمة عند اختيار القيمة
           'Value ... SelectedIndices(i)

           For i As Integer = 0 To Me.listClas.Items.Count - 1

               If Me.listClas.GetSelected(i) Then
                   'هنا متغير لتعبئة القيمة أثناء النقر على أحد قيم اللست بوكس
                   'لتحديد قيمة الصف المختار من قاعدة البيانات والمعبأ في اللست بوكس
                   arrListQuery.Add( _
                       "SELECT TBL_Student.IDStudent, TBL_Student.NameStudent, TBL_Student.IDClas, TBL_Student.SETNO1, TBL_Student.SETNO2 " & _
                       ", TBL_Final1.IDSemester as [رقم الأختبار]" & _
                       ", TBL_Final1.ON" & CombCourses.SelectedIndex + 1 & " as أعمــال " & _
                       ", TBL_Final1.TO" & CombCourses.SelectedIndex + 1 & " as امتحـان " & _
                       ", TBL_Final1.TR" & CombCourses.SelectedIndex + 1 & " as المجموع " & _
                       "FROM TBL_Final1 RIGHT JOIN TBL_Student ON TBL_Final1.IDStudent=TBL_Student.IDStudent " & _
                       "Where TBL_Final1.IDClas=" & CInt(i + 1).ToString() & " and TBL_Final1.IDSemester=" & CombSemester.SelectedIndex + 1)
                   '" & CombSemester.SelectedIndex + 1)
                   ' & CInt(i + 1).ToString())

               End If

           Next

           '==========================

           'تحديد متغير لتعبئة مجموعة البيانات من الاستعلام
           Dim da As OleDb.OleDbDataAdapter

           da = New OleDbDataAdapter(Nothing, Con)
           'هنا تحديد متغير داتا سيت لتخزين البيانات
           Dim ds As New DataSet

           For i As Integer = 0 To arrListQuery.Count - 1

               If Not IsNothing(arrListQuery(i)) Then

                   'Assign the query string.
                   da.SelectCommand.CommandText = arrListQuery(i).ToString

                   'تعبئة مخزن البيانات من الاستعلام المحدد
                   da.Fill(ds, "Student")

               End If
           Next

           DataGridView1.DataSource = ds.Tables("Student")

           'تحديد بيانات الداتا قريد التي ستعبأ

           FillLoadStudent()
           'Destroy object.
           'arrListQuery = Nothing

       Catch ex As Exception
           ' MessageBox.Show(ex.Message)
       End Try

   End Sub

   Private Sub FillLoadStudent()
       ' تغيير أسماء الأعمدة باللغة العربية
       Me.DataGridView1.Columns(0).HeaderText = "رقم الطالـب"
       Me.DataGridView1.Columns(1).HeaderText = "اســـــم الطالـــب"
       Me.DataGridView1.Columns(2).HeaderText = "الصــف"
       Me.DataGridView1.Columns(3).HeaderText = "رقم الجلوس"
       Me.DataGridView1.Columns(4).HeaderText = "رقم المراقبة"
       Me.DataGridView1.Columns(5).HeaderText = "رقم الأختبار"
       Me.DataGridView1.Columns(6).HeaderText = "أعمـال"
       Me.DataGridView1.Columns(7).HeaderText = "امتحـان"
       Me.DataGridView1.Columns(8).HeaderText = "المجمـوع"

       ' Me.DataGridView1.Columns(0).Visible = False
       Me.DataGridView1.Columns(1).Width = 240
       ' Me.DataGridView1.Columns(2).Visible = False
       ' Me.DataGridView1.Columns(3).Visible = False
       Me.DataGridView1.Columns(4).Width = 100
       Me.DataGridView1.Columns(5).Width = 100
       Me.DataGridView1.Columns(6).Width = 100
       Me.DataGridView1.Columns(7).Width = 100
       Me.DataGridView1.Columns(8).Width = 100
       'كود تغير الالوان لصفوف الداتا جريد
       DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       DataGridView1.MultiSelect = False
       With Me.DataGridView1
           .RowsDefaultCellStyle.BackColor = Color.White
           .AlternatingRowsDefaultCellStyle.BackColor = Color.PowderBlue

           ' عدد السجلات
           LSUM.Text = " عـدد طلبــة الصــف : " & DataGridView1.Rows.Count & " "

       End With

   End Sub
السلام عليكم ورحمة الله وبركاته

بعد الكثير من المحاولات توصلت لحل بفضل الله تعالى
تفضل المثال في المرفقات
الصفحات : 1 2