4 pièce(s) jointe(s)
DataGridView erreur L'index était hors limites .. ne doit pas être négatif
Salut Forum
Salut tout le monde
SVP j'ai besoin d'aide pour resoudre ce probleme
J'ai Table1 nommee ( TBL_EMPLOYE ) avec 3 champs ( EMPLOYE_Code de type Text , EMPLOYE_Name de type Text , EMPLOYE_Salaire de type Numérique)
J'ai Table2 nommee ( TBL_ATTENDANCE ) avec 6 champs ( ATTENDANCE_Employe_Code de type Text , ATTENDANCE_Days1 de type Numerique , ATTENDANCE_Days2 de type Numerique , ATTENDANCE_Days3 de type Numerique , ATTENDANCE_Days4 de type Numerique , ATTENDANCE_Days5 de type Numerique )
Pièce jointe 632090
Pièce jointe 632091
J'ai rempli les trois premieres colonnes du DataGridView1 par la Table ( TBL_EMPLOYE ) on laissant la première ligne vide
Pièce jointe 632092
J'ai ajouté 5 colonnes a ma DataGridView1 pour remplir les cordonnees de ces employes deja affichés dans la grille par ma Table ( TBL_ATTENDANCE ) .. En fonction d'unique code entre les deux tables ( EMPLOYE_Code ) dans la table ( TBL_EMPLOYE ) et ( ATTENDANCE_Employe_Code ) dans la table ( TBL_ATTENDANCE ) .. mais malheureusement j'ai eu ce message d'erreur ( L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection )
Pièce jointe 632093
Voici tout mon code dans ma Form 1 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Public Class Form1
Dim Conne As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|Datadirectory|\EMPLOYE.Mdb;User Id=Admin;Jet OLEDB:Database Password=")
Dim DT As New DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim DA As New OleDb.OleDbDataAdapter("SELECT EMPLOYE_Code , EMPLOYE_Name , EMPLOYE_Salaire From TBL_EMPLOYE", Conne)
DT.Clear()
DA.Fill(DT)
If DT.Rows.Count > 0 Then
Dim New_Rows As System.Data.DataRow = DT.NewRow
New_Rows("EMPLOYE_Code") = DBNull.Value
New_Rows("EMPLOYE_Name") = DBNull.Value
New_Rows("EMPLOYE_Salaire") = DBNull.Value
DT.Rows.InsertAt(New_Rows, 0)
Else
Me.DataGridView1.DataSource = Nothing
End If
DT.Columns.Add("Days1")
DT.Columns.Add("Days2")
DT.Columns.Add("Days3")
DT.Columns.Add("Days4")
DT.Columns.Add("Days5")
Dim Cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT ATTENDANCE_Days1 , ATTENDANCE_Days2 , ATTENDANCE_Days3 , ATTENDANCE_Days4 , ATTENDANCE_Days5 From TBL_ATTENDANCE Where ATTENDANCE_Employe_Code = @Param_Code", Conne)
Cmd.Parameters.AddWithValue("@Param_Code", OleDb.OleDbType.VarWChar).Value = Me.DataGridView1.Rows(1).Cells("EMPLOYE_Code").Value.ToString
Dim Adp As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(Cmd)
Adp.Fill(DT)
If DT.Rows.Count > 0 Then
For I As Integer = 0 To DT.Rows.Count - 1
For Each Attendance_Rows As DataRow In DT.Rows
Attendance_Rows("Days1") = DT.Rows(I).Item("ATTENDANCE_Days1")
Attendance_Rows("Days2") = DT.Rows(I).Item("ATTENDANCE_Days2")
Attendance_Rows("Days3") = DT.Rows(I).Item("ATTENDANCE_Days3")
Attendance_Rows("Days4") = DT.Rows(I).Item("ATTENDANCE_Days4")
Attendance_Rows("Days5") = DT.Rows(I).Item("ATTENDANCE_Days5")
Next
Next
End If
Me.DataGridView1.DataSource = DT
End Sub
End Class |
Merci beaucoup d'avance pour l'aide
Cordialement
MADA