Salut à tout le monde
Voilà je suis bloqué il y a presque 2 jours sur cette erreur :
Je ne sais pas comment la résoudre , le débogueur de visual basic 2010 me pointe sur cette ligne :Conversion failed when converting the varchar value 'System.Data.DataRowView' to data type int.
Je travaille sur une appli de bdd concernant la gestion des notes des élèves, mon formulaire sur lequel je travaille permet la saisie des notes des élèves en fonction des valeurs sélectionnées de trois combobox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part daNotes.Fill(dsNotes, "evaluations")
le 1er s'appelle cbDiv : combobox affichant les noms des divisions ( c'est à dire les classes) et pour chaque classe sélectionnée , la liste des élèves appartenant à cette division s'affiche dans un DataGridView.
le 2e s'appelle cbMat : combobox affichant les nom des matières
le 3e s'appelle cbtrim : combobox affichant les noms des trimestres.
car pour connaitre les notes d'un élève on doit savoir la matière pour laquelle il a eu des notes et aussi le trimestre car il y en a trois dans une année scolaire.
Donc mon idée se résume ainsi :
Dans un DataGridView je dois afficher les n° , les noms et les prénoms des élèves selon la valeur de la division sélectionnée dans le combobox cbDiv.
Ensuite on choisit la matière toujours dans le combobox cbMat et après on choisit le trimestre dans le combobox cbTrim puis enfin on saisit les notes pour chaque élève.
voici mon code (la requete est un peu complexe mais je l'ai testé sur SQL SERVER 2008 et elle marche très bien)
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub cbDiv_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbDiv.SelectedIndexChanged strSQL = "SELECT eleves.idelv, eleves.nom, eleves.pren, divisions.libcla, matieres.libmat," & _ "trimestres.libtrim,evaluations.moyev, evaluations.dev1, evaluations.dev2, evaluations.exam, " & _ "evaluations.moymat FROM eleves INNER JOIN divisions ON eleves.idcla = divisions.idcla " & _ "INNER JOIN evaluations ON eleves.idelv = evaluations.idelv INNER JOIN trimestres ON evaluations.idtrim = trimestres.idtrim " & _ "INNER JOIN matieres ON evaluations.idmat = matieres.idmat WHERE eleves.idcla = '" & cbDiv.Text & "'" & _ "AND evaluations.idmat='" & cbMat.Text & "' AND evaluations.idtrim='" & cbTrim.Text & "'" Dim daNotes As New SqlDataAdapter(strSQL, cn) Dim dsNotes As New DataSet Dim dtNotes As New DataTable("evaluations") Try If cn.State Then cn.Close() cn.Open() daNotes.Fill(dsNotes, "evaluations") cn.Close() If dsNotes.Tables("evaluations").Rows.Count > 0 Then dgvNotes.DataSource = dsNotes dgvNotes.DataMember = "evaluations" Else 'dgvNotes.DataSource = Nothing 'MsgBox("لا يوجد علامات بهذا القسم", MsgBoxStyle.Information) 'DGVRefresh() End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub
Partager