Probléme avec update command

Signaler
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013
-
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013
-
Bonjour,
Je veux modifier qu'un seul champs et mettre en condition les autre champs par contre j'utilise pas deux autre champs dans ma requete (numéro decompte ,date decompte) mais la commande update sa me donne une erreur au niveau de la requete (operator '&' is not defined for string "update "update decompte set payee ='oui" and type datarowview')

voila mon code :
 Dim c As String
        If RadioButton2.Checked = True Then
            c = "oui"

        End If
        co.Open()
        Dim cmd As New SqlCommand("update decompte set payee ='" & c & "' where trimestre=" & TextBox1.Text & " and annee=" & TextBox2.Text & "and num_contrat=" & ComboBox1.SelectedValue, co)
        cmd.ExecuteNonQuery()
        MsgBox("modifier")
        co.Close()

Merci d'avance

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Manque un espace devant le And de ...TextBox2.Text & "and num..."

Pour être lisible et voir ce genre d'erreur, un peu de remise en forme :
Dim sSQL As String = _
    "Update decompte " & _
    "   Set payee = '" & c & "'" & _
    " Where trimestre   = " & TextBox1.Text & _
    "   And annee       = " & TextBox2.Text & _
    "   And num_contrat = " & ComboBox1.SelectedValue
Dim cmd As New SqlCommand(sSQL, co)
Ca te permettra de visualiser la syntaxe SQL avant de la soumettre

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

Sa me fait la meme erreur sauf qu'il a enlevé le 'oui' (operator '&' is not defined for string "update "update decompte set payee ='" and type datarowview')
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Comme tu es en VB.Net, vois s'il ne faudrait pas remplacer les & de concaténation de chaine, par des +

Dans ta table, de quel type est ton champ "payee" ?
Parce que là, cela suppose qu'il s'agit d'un champ de type texte. C'est le cas ?

Les autres champs (trimestre, annee et num_contrat) sont bien des champs numériques ?

Pense aussi à encadrer le nom des champs (ou table) qui comporteraient des caractères spéciaux comme des espaces, des accents, des synmboles comme _
Exemple :
... And [num_contrat] = " + ...
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

En vb.net on utilise les &
Et sa marche j'ai travaillé avec les requête paramétrées
Merci pour ton aide comme même
Bonne journée .