Refus update sql ( vb.net 2015 vb sql serveur 2016 )
Résolu
JSB-24270
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
Jacques -
Jacques -
A voir également:
- Refus update sql ( vb.net 2015 vb sql serveur 2016 )
- Changer serveur dns - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Vb - Télécharger - Langages
- Asus live update - Télécharger - Utilitaires
7 réponses
Bonjour.
J'ai résolu mon problème update en plaçant
Command.ExecuteNonQuery()
dans un IF, comme ceci
Et maintenant plus de problème.
Merci à tous et pour tout
J'ai résolu mon problème update en plaçant
Command.ExecuteNonQuery()
dans un IF, comme ceci
If Command.ExecuteNonQuery() Then MsgBox("Update OK") Else MsgBox("Update NON") End If
Et maintenant plus de problème.
Merci à tous et pour tout
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
peux-tu alors marquer la discussion comme résolue?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, plusieurs suggestions:
1) utilise les balises de code en précisant "basic" pour du VB
2) quand tu as un message d'erreur, informe-nous de la ligne de code sur laquelle cela se produit
3) quand tu prepares ainsi une requête SQL via un programme, fais plutôt ainsi:
4) quand tu as un soucis avec une requête SQL via un programme, récupère la source de la requête, et teste cela en direct sur la base de données. si tu ne comprends pas l'erreur, partage la source de la requête, ainsi que le message d'erreur.
1) utilise les balises de code en précisant "basic" pour du VB
2) quand tu as un message d'erreur, informe-nous de la ligne de code sur laquelle cela se produit
3) quand tu prepares ainsi une requête SQL via un programme, fais plutôt ainsi:
dim reqSQL as string reqSQL = "UPDATE entreprise SET nom='" & Label1.Text & "', adresse ='" & Label2.Text & _ "', cp='" & Label3.Text & "',ville='" & Label4.Text & "',tel='" & Label5.Text & _ "',fax='" & Label6.Text & "',email='" & Label7.Text & _ "',site='" & Label8.Text & "',rcs='" & Label9.Text & _ "',siret='" & Label10.Text & "',ape='" & Label11.Text _ & "', WHERE id='" & TextBox12.Text & "' " Dim Comm2 As New SqlCommand(reqSQL, Connexion)
4) quand tu as un soucis avec une requête SQL via un programme, récupère la source de la requête, et teste cela en direct sur la base de données. si tu ne comprends pas l'erreur, partage la source de la requête, ainsi que le message d'erreur.
Bonjour yg_be
J'ai essayé ton code mais j'ai toujours le même message d'erreur.
Quand à utiliser la balise de code, c'est ce que j'ai fait mais ça ne change rien.
voici le message que j'obtiens, de la ligne => comm2.ExecuteNonQuery ()
Une exception non gérée du type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
Informations supplémentaires : Syntaxe incorrecte vers 'entreprise'.
Ouvrez les guillemets après la chaîne de caractères ' '.
J'ai suivi ton conseil et ai fait ma requête directement sur le serveur et il me signale une erreur de syntaxe
Msg 156, Niveau 15, État 1, Ligne 7
Syntaxe incorrecte vers le mot clé 'WHERE'.
J'ai vu que j'avais placé une , avant la clause WHERE mais c'est toujours pareil
J'ai rectifié en modifiant la valeur de l'ID de INT en VARCHAR, sur le serveur je n'ai plus d'erreur mais toujours le même message au debugage, là je ne comprend plus rien.
J'ai essayé ton code mais j'ai toujours le même message d'erreur.
Quand à utiliser la balise de code, c'est ce que j'ai fait mais ça ne change rien.
Dim reqSQL As String
reqSQL = "UPDATE entreprise SET nom='" & Label1.Text & "', adresse ='" & Label2.Text & _
"', cp='" & Label3.Text & "',ville='" & Label4.Text & "',tel='" & Label5.Text & _
"',fax='" & Label6.Text & "',email='" & Label7.Text & _
"',site='" & Label8.Text & "',rcs='" & Label9.Text & _
"',siret='" & Label10.Text & "',ape='" & Label11.Text _
& "', WHERE id='" & TextBox12.Text & "' "
Dim Comm2 As New SqlCommand(reqSQL, Connexion)
Comm2.ExecuteNonQuery()
voici le message que j'obtiens, de la ligne => comm2.ExecuteNonQuery ()
Une exception non gérée du type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
Informations supplémentaires : Syntaxe incorrecte vers 'entreprise'.
Ouvrez les guillemets après la chaîne de caractères ' '.
J'ai suivi ton conseil et ai fait ma requête directement sur le serveur et il me signale une erreur de syntaxe
Msg 156, Niveau 15, État 1, Ligne 7
Syntaxe incorrecte vers le mot clé 'WHERE'.
J'ai vu que j'avais placé une , avant la clause WHERE mais c'est toujours pareil
J'ai rectifié en modifiant la valeur de l'ID de INT en VARCHAR, sur le serveur je n'ai plus d'erreur mais toujours le même message au debugage, là je ne comprend plus rien.
Bonjour Jacques,
par 2 fois dans une précédente question, je t'ai demandé de lire le petit tuto sur les balises de codes. c'était là
https://forums.commentcamarche.net/forum/affich-36566015-sql-combobox-et-lecture-dans-des-textbox-vb-net-2015-vb#2
Au vu de tes 2 pavés gris et moches, il me semble que tu n'as pas fait cet effort.
yg_be lui fait l'effort de te poster un code
Pourtant, lui n'a pas besoin d'aide, donc n'a pas besoin de donner envie aux autres de lire sa réponse.
Le moindre respect que tu devrais avoir envers lui, c'est de lui rendre la tache plus aisée non?
Quand tu aurais fait l'effort de poster un code lisible, je te montrerais comment en VB.Net on construit une string de façon plus "clair", car là on codant en mode VBA, s'il manque une apostrophe c'est pas facile à voir.
par 2 fois dans une précédente question, je t'ai demandé de lire le petit tuto sur les balises de codes. c'était là
https://forums.commentcamarche.net/forum/affich-36566015-sql-combobox-et-lecture-dans-des-textbox-vb-net-2015-vb#2
Au vu de tes 2 pavés gris et moches, il me semble que tu n'as pas fait cet effort.
yg_be lui fait l'effort de te poster un code
- coloré
- indenté
- dont les lignes sont numérotées
- avec ascenseur horizontal ou vertical si besoin.
Pourtant, lui n'a pas besoin d'aide, donc n'a pas besoin de donner envie aux autres de lire sa réponse.
Le moindre respect que tu devrais avoir envers lui, c'est de lui rendre la tache plus aisée non?
Quand tu aurais fait l'effort de poster un code lisible, je te montrerais comment en VB.Net on construit une string de façon plus "clair", car là on codant en mode VBA, s'il manque une apostrophe c'est pas facile à voir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Whismeril.
J'ai reçu ton mail au moment ou j'étais en train de relire l'art et la manière de poster du code.
J'avoue que j'ai du lire un peu trop vite et zapper quelques lignes.
Je reposte donc mon script.
Effectivement, il y a la numérotation des lignes, c'est nettement mieux.
Mille excuses.
J'ai reçu ton mail au moment ou j'étais en train de relire l'art et la manière de poster du code.
J'avoue que j'ai du lire un peu trop vite et zapper quelques lignes.
Je reposte donc mon script.
Dim reqSQL As String reqSQL = "UPDATE entreprise SET nom='" & Label1.Text & "', adresse ='" & Label2.Text & "', cp='" & Label3.Text & "',ville='" & Label4.Text & "',tel='" & Label5.Text & "',fax='" & Label6.Text & "',email='" & Label7.Text & "',site='" & Label8.Text & "',rcs='" & Label9.Text & "',siret='" & Label10.Text & "',ape='" & Label11.Text _ & "' WHERE id='" & TextBox12.Text & "' " Dim Comm2 As New SqlCommand(reqSQL, Connexion) Comm2.ExecuteNonQuery()
Effectivement, il y a la numérotation des lignes, c'est nettement mieux.
Mille excuses.
Très bien.
Il y a deux autres façons de construire une string en .Net.
La méthode prend en paramètres un texte "modèle", et un tableau d'objets "paramètriques".
C'est dans le tableau que l'on va chercher les informations à insérer dans le modèle.
Par définition, le tableau n'a pas un nombre d'item fixe, pour ajouter un objet, il suffit de le mettre à la suite des autres.
Dans le texte modèle, l'emplacement des informations à insérer est marqué par
Par exemple
Cette méthode permet aussi d'appliquer des formats sur les nombre, bon là pour ta requête ça ne sert pas puisque tu n'as que des string en entrée, mais ça peut te servir un jour
Note que là on voit plus facilement les apostrophes entourant les données issues des variables
Il y a deux autres façons de construire une string en .Net.
- Utiliser un stringbuilder https://docs.microsoft.com/fr-fr/dotnet/api/system.text.stringbuilder?view=netframework-4.8 si les codes exemples sont sont en C#, tu peux changer le langage en haut à droite de la page
- Utiliser String.Format, le premier exemple du lien ci-dessus termine par
Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString())
c'est précisément un exemple de cette façon de faire.
La méthode prend en paramètres un texte "modèle", et un tableau d'objets "paramètriques".
C'est dans le tableau que l'on va chercher les informations à insérer dans le modèle.
Par définition, le tableau n'a pas un nombre d'item fixe, pour ajouter un objet, il suffit de le mettre à la suite des autres.
Dans le texte modèle, l'emplacement des informations à insérer est marqué par
"{x}"où x est l'index de l'objet dans le tableau d'objets.
Par exemple
Dim prenom as String = "Alain" Dim nom as String = "Di" Dim identite as String = String.Format("{0} {1}", prenom, nom") 'identite vaut "Alain Di"
Cette méthode permet aussi d'appliquer des formats sur les nombre, bon là pour ta requête ça ne sert pas puisque tu n'as que des string en entrée, mais ça peut te servir un jour
Dim pi as String = String.Format("Pi arrondi à 2 décimales '{0:0.00}' ", Math.Pi) Dim heure As String = String.Format("Heure:Minute '{0:hh:mm}' {1}", DateTime.Now, If(DateTime.Now.Hour > 12, "de l'après-midi", "du matin"))
Note que là on voit plus facilement les apostrophes entourant les données issues des variables