Les Allergies
Alimentaires
Posez votre question Signaler

[VB.NET] Update et champ automatique [Résolu]

XatOr 737Messages postés 4 juin 2008Date d'inscription 28 février 2011Dernière intervention - Dernière réponse le 9 juin 2008 à 10:27
Bonjour, depuis peu, je code pour les besoins de mon entreprise en VB.NET.
Mon projet consiste à gérer une base de donnée Access à partir d'une application Windows totalement créer par mes soins. Cette base de donnée regroupe tous les contacts des différents sites de l'entreprise ainsi que les contacts extérieurs à l'entreprise. Pour le moment, j'ai réussi à créer une form permettant l'ajout de contact.
En ce moment je suis dans la phase de developpement de la form permettant la modification et la mise à jour de la base. Pour celà, j'utilise une datagridview sans modifications possible directement dans cette datagrid mais lorsque l'on clique sur une ligne, les informations se retrouvent juste en dessous dans des TextBox, MaskedTextBox, ComboBox, etc. Le problème c'est que pour Update (lors du clique sur le bouton), la modification de ma requête se fait sur tous les champs modifiés à partir d'un champ automatique, le champ d'identification appelé Num_auto (dans le WHERE). Voici mon code :
Imports System.Data.OleDb
Imports System.Globalization
Public
Class Edit_data
PrivateSub Edit_data_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
'TODO : cette ligne de code charge les données dans la table 'ContactsDataSet.annuaire'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
Me.AnnuaireTableAdapter.Fill(Me.ContactsDataSet.annuaire)
' Format des MaskedTextBox en culture EN-US pour accepter les points
Ligne_DirecteMaskedTextBox.Culture = New CultureInfo("En-us")
Ligne_DirecteMaskedTextBox.Mask = "00.00.00.00.00"
PortableMaskedTextBox.Culture = New CultureInfo("En-us")
PortableMaskedTextBox.Mask = "00.00.00.00.00"
EndSub
' Mise à jour de la table lors du clique sur le bouton
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim connec AsNew OleDbConnection()
Dim cmd_update AsNew OleDbCommand()
connec = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Contacts.mdb")
cmd_update = New OleDbCommand _
("UPDATE annuaire SET Nom=('" & NomTextBox.Text & "') WHERE Num_auto=('" & Num_autoTextBox.Text & "')", connec)
connec.Open()
cmd_update.Connection = connec
cmd_update.ExecuteNonQuery()
EndSub
EndClass
Donc ici :
cmd_update = New OleDbCommand _
("UPDATE annuaire SET Nom=('" & NomTextBox.Text & "') WHERE Num_auto=('" & Num_autoTextBox.Text & "')", connec)
La commande OleDb effectue une UPDATE dans la table annuaire en changeant le champ Nom par ce qui est contenu dans NomTextBox avec la condition du WHERE où le Num_auto est égal au texte contenu dans Num_autoTextBox.
Donc voilà c'est la condition qui ne fonctionne pas apparament parce que Num_auto est un champ de type numéro automatique. J'ai essayé (pour un simple test), d'effectuer la condition avec un autre type de champ et ca fonctionnait.
Merci de me donner si possible des explications. ;)
Lire la suite 

[VB.NET] Update et champ automatique »

1 réponses
Réponse
-1
moins plus
Apparament il semblerait que ce soit dû aux ' ' qui mettent le Num_autoTextBox.Text comme chaine de caractère, j'ai donc enlevé ces 2 quotes et maintenant celà fonctionne.

Désolé d'avoir ouvert un post pour rien.
Ajouter un commentaire
Ce document intitulé « [VB.NET] Update et champ automatique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?