06-05-25, 01:32 AM
لمـاذا البطء في جلب البيانـات في الداتا قريدفيو على الرغم من البيانات لا تتعدي 10 اسطر
واستخدمت هذا الكود ولكن لم يضبط معي
كود :
Private Sub FillCCourses()
' صب عرض الدرجــات حسب اســم المـادة
If DataGridView1.Rows.Count = 0 Then Exit Sub
For i As Integer = 0 To DataGridView1.Rows.Count - IIf(DataGridView1.AllowUserToAddRows, 2, 1)
DataGridView1.Rows(i).Cells(4).Value = ""
DataGridView1.Rows(i).Cells(5).Value = ""
DataGridView1.Rows(i).Cells(6).Value = ""
Next
For i As Integer = 0 To DataGridView1.Rows.Count - IIf(DataGridView1.AllowUserToAddRows, 2, 1)
Dim clasIndex As Integer = FormMin.ListBoxClas.SelectedIndex + 1
Dim roomIndex As Integer = Me.Combroom.SelectedIndex + 1
Dim sql As String = "select stID, on" & CombCourses.SelectedIndex + 1 & ", to" & CombCourses.SelectedIndex + 1 & ", tr" & CombCourses.SelectedIndex + 1 & " from TBL_Final1 where IDStudent=" & DataGridView1.Rows(i).Cells(0).Value & " and IDClas=" & FormMin.ListBoxClas.SelectedIndex + 1 & " and ClassroomID=" & Me.Combroom.SelectedIndex + 1 & " and SemesterID=" & Trim$(CombSemester.Text)
Dim cm As New OleDb.OleDbCommand(sql, Con)
cm.Parameters.AddWithValue("IDStudent", DataGridView1.Rows(i).Cells(0).Value)
cm.Parameters.AddWithValue("IDClas", FormMin.ListBoxClas.SelectedIndex + 1)
cm.Parameters.AddWithValue("ClassroomID", Me.Combroom.SelectedIndex + 1)
cm.Parameters.AddWithValue("SemesterID", Trim$(CombSemester.Text))
Try
If Con.State = ConnectionState.Closed Then Con.Open()
Dim dr As OleDb.OleDbDataReader = cm.ExecuteReader
If dr.Read Then
DataGridView1.Rows(i).Cells(4).Value = dr(1)
DataGridView1.Rows(i).Cells(5).Value = dr(2)
DataGridView1.Rows(i).Cells(6).Value = dr(3)
End If
dr.Close()
Catch ex As Exception
MessageBox.Show("خطأ: " & ex.Message)
Finally
If Con.State = ConnectionState.Open Then Con.Close()
End Try
Next
End Subواستخدمت هذا الكود ولكن لم يضبط معي
كود :
' صب عرض الدرجــات حسب اســم المـادة
If DataGridView1.Rows.Count = 0 Then Exit Sub
Dim sql As String = "select IDStudent, on" & CombCourses.SelectedIndex + 1 & ", to" & CombCourses.SelectedIndex + 1 & ", tr" & CombCourses.SelectedIndex + 1 & " from TBL_Final1 where IDClas=@IDClas and ClassroomID=@ClassroomID and SemesterID=@SemesterID"
Dim dt As New DataTable()
Using Con As New OleDb.OleDbConnection("...")
Con.Open()
Using cmd As New OleDb.OleDbCommand(sql, Con)
cmd.Parameters.AddWithValue("@IDClas", FormMin.ListBoxClas.SelectedIndex + 1)
cmd.Parameters.AddWithValue("@ClassroomID", Me.Combroom.SelectedIndex + 1)
cmd.Parameters.AddWithValue("@SemesterID", Trim$(CombSemester.Text))
Using adapter As New OleDb.OleDbDataAdapter(cmd)
adapter.Fill(dt)
End Using
End Using
End Using
For Each row As DataRow In dt.Rows
For i As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(i).Cells(0).Value.ToString() = row("IDStudent").ToString() Then
DataGridView1.Rows(i).Cells(4).Value = row(1)
DataGridView1.Rows(i).Cells(5).Value = row(2)
DataGridView1.Rows(i).Cells(6).Value = row(3)
Exit For
End If
Next
Next