[VB.NET] Problème Insertion Base de données avec Variables
Bonjour, Voici mon code:
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
Imports System.Data.OleDb
Public Class F_AjoutSalle
Public etage As Integer
Public notype As Integer
Public Typesalle As String
Public Sub charger_liste()
CB_TypeSalle.Items.Clear()
Dim dt As DataTable
dt = F_Menu.ReqSelection("SELECT LibelleTSalle FROM TypeSalle", "TypeSalle")
If dt.Rows.Count <> 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
CB_TypeSalle.Items.Add(dt.Rows(i).Item(0)).ToString()
Next
End If
End Sub
Private Sub B_Annuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Annuler.Click
Me.Close()
End Sub
Private Sub RB_RezJardin_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_RezJardin.CheckedChanged
etage = "1"
L_Etage.Text = etage 'test pour afficher numéro de l'étage
charger_liste()
End Sub
Private Sub RB_RezChaussee_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_RezChaussee.CheckedChanged
etage = "2"
L_Etage.Text = etage 'test pour afficher numéro de l'étage
charger_liste()
End Sub
Private Sub RB_1er_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_1er.CheckedChanged
etage = "3"
L_Etage.Text = etage 'test pour afficher numéro de l'étage
charger_liste()
End Sub
Private Sub RB_2eme_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_2eme.CheckedChanged
etage = "4"
L_Etage.Text = etage 'test pour afficher numéro de l'étage
charger_liste()
End Sub
Private Sub RB_3eme_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_3eme.CheckedChanged
etage = "5"
L_Etage.Text = etage 'test pour afficher numéro de l'étage
charger_liste()
End Sub
Private Sub CB_TypeSalle_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_TypeSalle.SelectedIndexChanged
Typesalle = CB_TypeSalle.SelectedItem.ToString
L_typesalle.Text = Typesalle
Dim dt2 As DataTable
dt2 = F_Menu.ReqSelection("SELECT No_TypeSalle FROM TypeSalle WHERE LibelleTSalle ='" & Typesalle & "'", "TypeSalle")
If dt2.Rows.Count <> 0 Then
notype = dt2.Rows(0).Item(0).ToString
L_NoTypeSalle.Text = notype
End If
End Sub
Private Sub B_AjoutSalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_AjoutSalle.Click
Dim cnx As OleDbConnection
Dim cmd As OleDbCommand
' instanciation et ouverture d'une connexion
cnx = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=reparations.mdb")
cnx.Open()
'instanciation d'un objet Commande
cmd = New OleDbCommand("INSERT INTO Salle (LibelleSalle, No_TypeSalle, No_Etage) VALUES ('" & T_NomSalle.Text & "', "&Typesalle&","&etage&" )")
cmd.Connection() = cnx
cmd.ExecuteNonQuery()
cnx.Close()
End Sub
End Class |
Tout fonctionne sauf ma requête d'insertion!!! Qui est à la fin du code
J'ai 1 table Salle dans laquelle je veux ajouter une salle!!
Il faut donc:
-Nom de la salle ( text box -> T_NomSalle.text) donc un string
-Numéro de type de la chambre ( variable Typesalle) numéro
(je récupere bien le numéro de la variable)
-Numéro de l'étage ( variable etage) numéro
(je récupere bien le numéro de la variable)
Les erreurs qui sont propre à la ligne de la requête INSERT:
Citation:
Le caractère de type '&' ne correspond pas au type de données déclaré 'String'.
Citation:
Virgule, ')' ou continuation d'expression valide attendue
Je suis bloqué là dessus!!
Je pense que c'est une histoire de guillemets ou quelque chose dans le style!
Merci d'avance
Une Erreur dans la procédure!
Rebonjour!
Après rectification de la requête, Il n'y a plus aucune erreur!
Cependant, lors de l'exécution du programme, une erreur me parvient lorsque je veux exécuter la requête!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Dim cnx As OleDbConnection
Dim cmd As OleDbCommand
' instanciation et ouverture d'une connexion
cnx = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=reparations.mdb")
cnx.Open()
'instanciation d'un objet Commande
cmd = New OleDbCommand("INSERT INTO Salle (LibelleSalle, No_TypeSalle, No_Etage) VALUES ('" & T_NomSalle.Text & "', " & Typesalle & "," & etage & " )")
cmd.Connection() = cnx
MsgBox("vous avez rajout une " & cmd.ExecuteNonQuery() & " salle")
cnx.Close() |
Il me marque une erreur sur le
Code:
cmd.ExecuteNonQuery()
Citation:
L'exeption OleDbException n'a pas été gérée
Aucune valeur donnée pour un ou plusieurs des paramètres requis.
Comment cela se fait-il??
Merci d'avance!!