Mise à jour SQL depuis VB Visual 2005

Résolu
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010 - 30 nov. 2005 à 09:20
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010 - 15 déc. 2005 à 16:34
Bonjour,



Je désire mettre à jour un enregistrement d'une table SQL et pensais
avoir trouvé le bon code, mais problème je ne reçois aucun message
d'erreur et la table n'est pas mise à jour. Ci-dessous le code utilisé :


strSql = "UPDATE REF_PS SET EMPLACEMENT=" & Empl & ", CHARGE=" & Chargem & " WHERE ESRC_FILE = '"

strSql strSql & Dossier & "' AND RC_NUM '" & Client & "' AND PS_CODE = '" & Sequence & "'"

conn = New SqlConnection(strConn)

conn.Open()

CmdS = New SqlCommand(strSql)

conn.Close()



J'ai découvert VB il y a une semaine et suis loin de le maîtriser, merci d'avance pour votre aide.

Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp

4 réponses

dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
15 déc. 2005 à 16:33
Après bien des recherches et une sérieuse fricassée de neurones, j'ai trouvé un code qui fonctionne :

' Modification du DataSet
With ds.Tables("REF_PS")
.Rows(0).Item("EMPLACEMENT") = Empl
.Rows(0).Item("CHARGE") = Chargem
End With

' Mise à jour SQL
strSql = "UPDATE REF_PS SET EMPLACEMENT='" & Empl & "', CHARGE='" & Chargem & "' WHERE ESRC_FILE = '" & Dossier & "' AND RC_NUM = '" & Client & "' AND PS_CODE = '" & Sequence & "'"
CmdS.CommandType = CommandType.Text
CmdS.CommandText = strSql
da.UpdateCommand = CmdS
da.Update(ds.Tables("REF_PS"))

Je ne sais pas trop pourquoi il faut simultanément modifier le DataSet et passer un requête "UPDATE ...", mais l'essentiel
est que ma base soit modifiée.

Merci aussi à vpoyo.

Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
3
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
30 nov. 2005 à 09:34
Il faut exécuter ta requête !! et également associer ta SqlCommand à ta connection

strSql = "ta requete sql"

conn = New SqlConnection(strConn)
conn.Open()
CmdS = New SqlCommand(strSql,strCom)
'ou
'Cmds = New SqlCommand()
'Cmds.Connection = conn
'Cmds.CommandText = strSql
'Cmds.CommandType = CommandType.Text

Cmds.executeNonQuery() '<-- retourne le nombre de ligne affecté

conn.Close()

ATTENTION : je ne les ai pas mis ici, mais n'oublie pas de bien gérer les exceptions try/catch
tu dois tester si tu as résussi a te connecter, et si tu as réussi a éxécuter ta commande !!!
0
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
5 déc. 2005 à 14:46
Bonjour,

Il n'y a rien à faire, impossible de mettre à jour mon enregistrement. J'ai aussi essayé la méthode suivante :
With ds.Tables("REF_PS")
.Rows(0).Item("EMPLACEMENT") = Empl
.Rows(0).Item("CHARGE") = Chargem
End With
da.Update(ds.Tables("REF_PS"))
qui me génère une erreur "System.InvalidOperationException was unhandled"
"Update requires a valid UpdateCommand when passed DataRow collection
with modified rows".

Un Try / Catch sur la 1ère méthode donne pas d'exception.

Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
0
dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
15 déc. 2005 à 16:34
Après bien des recherches et une sérieuse fricassée de neurones, j'ai trouvé un code qui fonctionne :

' Modification du DataSet
With ds.Tables("REF_PS")
.Rows(0).Item("EMPLACEMENT") = Empl
.Rows(0).Item("CHARGE") = Chargem
End With

' Mise à jour SQL
strSql = "UPDATE REF_PS SET EMPLACEMENT='" & Empl & "', CHARGE='" & Chargem & "' WHERE ESRC_FILE = '" & Dossier & "' AND RC_NUM = '" & Client & "' AND PS_CODE = '" & Sequence & "'"
CmdS.CommandType = CommandType.Text
CmdS.CommandText = strSql
da.UpdateCommand = CmdS
da.Update(ds.Tables("REF_PS"))

Je ne sais pas trop pourquoi il faut simultanément modifier le DataSet et passer une requête "UPDATE ...", mais l'essentiel
est que ma base soit modifiée.

Merci aussi à vpoyo.

Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
0
Rejoignez-nous