Novice en vb2005 cherche secours

dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 - 9 août 2009 à 19:57
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 26 sept. 2009 à 11:33
je cherche qq'un qui puisse m'expliquer de maniere pedagogue la facon de communiquer entre ma base de donnée et l'interface que j'ai developpé
Mon projet est pas mal avancé, mais je cale sur l'utilisation d'ado.net
J'ai bien consulter les tutos, mais au moment de le mettre en pratique dans mon code ca ne marche pas.
Alors help!
Merci d'avance

39 réponses

dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
11 août 2009 à 20:28
j'ai qq peu changer mon code

là c'est mon code dans ma classe connexion

Public Function msj(ByVal rep As Integer, ByVal repid As String)
Dim conec As SqlConnection = New SqlConnection(My.Settings.data_transportConnectionString)
Dim cmd As SqlCommand = conec.CreateCommand
cmd.CommandType " UPDATE t_transporteur SET surtaxe_fuel VALUES " & rep & " where nom_transporteur '" & repid & "' "
Try
conec.Open()
cmd.ExecuteNonQuery()
If cmd.ExecuteNonQuery() = 0 Then
Return MsgBox("La mise à jour n'a pas été effectuée", MsgBoxStyle.Critical, "Erreur")

Else
Return MsgBox("La mise à jour été effectueé", MsgBoxStyle.Information, "Information")

End If
con.Close()
con.Dispose()
Catch err As Exception
Return MsgBox("Attention la connexion a votre base de donnée a echouée,veuillez verifier l'accès a celle ci et réessayer. Merci", MsgBoxStyle.Critical, "Message d'erreur")
con.Close()
con.Dispose()

End Try
End Function

là c'est mon code coté interface

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim strcon As String = My.Settings.data_transportConnectionString
Dim rep As Integer = CStr(Surtaxe_fuelTextBox.Text)
Dim repid As String = Nom_transporteurComboBox.Text
Dim con As connecxion = New connecxion(strcon)
con.msj(rep, repid)
End Sub

et là le resultat lors de l'execution de mon prog

La conversion de la chaîne " UPDATE t_transporteur SET surta" en type 'Integer' n'est pas valide.

Je n'ai pas reussi a resoudre le probleme d'instancition de connexion de l'autre version.

Mercii
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
12 août 2009 à 08:25
Salut,

Pourquoi tu veux convertir la chaîne en intéger ?

Dim rep As Integer = CStr(Surtaxe_fuelTextBox.Text)

Doit resté :

Dim rep As String = Surtaxe_fuelTextBox.Text

En suite remplace :

Public Function msj(ByVal rep As String, ByVal repid As String)

Et :

cmd. CommandText " UPDATE t_transporteur SET surtaxe_fuel VALUES (" & rep & ") where (nom_transporteur '" & repid & "')"

C'est tout.

La propriété CommandText du SqlCommand est sous forme de string, placer un integer dans une chaine ne sert a rien, il sera pris en compte comme faisant partie de cette chaîne.

Tu t'es trompé sur CommandType, était-ce intentionnel ?

CommandType est une énumération,

En gros il n'est pas recommandé de donner à une énumération en vb une autre valeur que celle proposé par le signe égal, toutes fois si tu souhaite le faire, il faut que cette valeur soit purement numérique.





Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 11:33
Bonjour,
merci pour ta reponse, par contre je retombe toujours sur mon probleme d'initialisation de ma connexion.
J'avais modifié ma valeur string en valeur numerique car j'ai pensé que la valeur a mettre ajour dans ma base de donnée est une valeur numerique, je me suis posé la question de savoir si ca n'etait pas a cause de cela que la mise a jour ne se faisait pas.
Apparemment pas.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 11:37
J' ai placé un point d'arret et le resultat est sans appel on passe de con.open() a catch en mode pas a pas dans le debugger
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 11:59
Alors alors, en mode detaillé on me dit que le mot values dans ma requete pose probleme de syntaxe, l'erreur vient donc de ma requete!!
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 12:18
la requete fonctionne enfin il fallait ecrire:
cmd.CommandText " UPDATE t_transporteur SET surtaxe_fuel " & rep & " where nom_transporteur = '" & repid & "' "
merciiiiiiiiiiiiiiiiiiiiiiii
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
12 août 2009 à 12:21
Heu... mais tu l'avais pas vu sur le pas à pas ???

L'erreur ne survient donc pas à :

conec.Open()

Mais à :

cmd.ExecuteNonQuery()

Dans ce cas pourquoi à tu le message d'erreur : Echec de l'initialisation de la connexion ???

en mode detaillé on me dit que le mot values dans ma requete pose probleme de syntaxe


Qui ? Mode détaillé = pas à pas ????

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 12:32
en fait si je mets le point d'arret sur con.open() le debugger en mode pas a pas passe directement a catch error, si maintenant je place le point d'arret sur cmd.executenonquery alors en mode pas a pas tu passe a catch error mais avec le message d'erreur suivant: la valeurs pres de "values" pose un probleme de syntaxe; c'est ce qui m'a mis sur la voie
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 12:34
sur con.open le message d'erreur est "probleme d'initialisation de la connexion" quand il passe a catch
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
12 août 2009 à 13:11
OUP'S !!!

Oui grosse boullete de ma part, j'ai fais un mélange entre la requête INSERT et UPDATE...

UPDATE : UPDATE Table SET (Champs Valeur, [Champ2 Valeur2], [...])

INSERT : INSERT INTO Table (Champs, [Champs2], [...]) VALUES (Valeur, [Valeur2],[...])

Autant pour moi je t'ai induis en erreur...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 13:39
pas de probleme tu n'as pas a t'excuser,ca m'a permis de chercher
T'en a déja beaucoup fait, j'ai beaucoup avancé grace a ton aide
Je continue de developper ce qu'il y a autour et j'aurai surement besoin de ton aide pour le travail avec des dataset, enfin si tu le veux bien
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
12 août 2009 à 13:57
Là c'est du vb cassique, mais comment ferais tu pour executer la procedure suivante

Private Sub Surtaxe_fuelTextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Surtaxe_fuelTextBox.TextChanged
If Surtaxe_fuelTextBox_TextChanged(là il faut que je recupere la valeur events arg) Then
Button3.Enabled = True
Button3.Focus()
else

Button3.Enabled = False
End If

End Sub
le but, rendre le bouton3 enable si le champs text a connu une modification.
peut etre est ce le b.a.-ba de la programmation mais je n'y arrive pas, te moque pas
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
12 août 2009 à 15:13
L'évément textChanged indique que le texte a forcément changé.

Pour la récup, 2 méthodes:

Tu n'as qu' un seul handle sur la procédure :

Private Sub Surtaxe_fuelTextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Surtaxe_fuelTextBox.TextChanged
Dim Nouvelle_valeur As String = Surtaxe_fuelTextBox.Text
End Sub

Tu as plusieurs Handles:

Private Sub MesTextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Textbox1.TextChanged, Textbox2.TextChanged
Dim Tb As TextBox = sender
Dim Nouvelle_valeur As String = Tb.Text
End Sub

wala...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
25 sept. 2009 à 19:41
Slt Mayzz
je souhaiterai te solliciter encore une fois
voila je travaillais sur mon prog, windows a planter comme d'hab, je relance mon pc j'ouvre mon prog et la j'ai une erreur reccurente:
Erreur 1 L'élément "obj\Debug\Transporteur.transport.resources" a été spécifié plus d'une fois dans le paramètre "Resources". Les éléments dupliqués ne sont pas pris en charge par le paramètre "Resources". Transporteur
apparamment il a du y avoir une copie d'un fichier qq part
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
25 sept. 2009 à 21:49
Tu as essayer de supprimer les répertoires BIN et Obj, puis de réouvrir ton projet et de le recompiler ?

Un petit conseil, si tu as des plantages de Windows avec perte de données, tu as peut être un sousci de disque dur, pense à sauvegarder ton projet sur un autre support, et lance un test sur ton disque système.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
25 sept. 2009 à 22:30
Slt
et merci pour ta reponse ravi de te retrouver
j'ai effacer les fichiers et j'ai recompiler ,mais apparamment un fichier a ete renomer et le fait de modifier le nom a creer le pb
reste 2,3 petites chose a recoriger et go
je fais comme t'as dis une sauvegarde sur un autre support
merci
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
26 sept. 2009 à 00:04
Au fait tu bosse toujours sur le même projet ?


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
26 sept. 2009 à 07:32
oui je bosse toujours dessus mais j'ai pas tes competences.Alors ca traine en longueur, en plus je vais tout le recoder de A a Z parceque mm si je l'ai recuperer il a qd mm du mal.
Ca me permettra de reviser!!!
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
26 sept. 2009 à 11:33
Ah ca les pertes de données c'est vraiment la misère ! Si t'as les moyens je te conseille une solution RAID ou même un simple disque dur externe, avec un soft de synchronisation. Même si t'es pas pro, ca fait toujours chier de perdre des projets personnels sur lequel on a passer 6 mois ! Je parle en connaissance de cause...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous