Aide sur le VB.net [Résolu]

Signaler
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011
-
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011
-
Bonjour je suis vraiment coincé ça fait quelque jours que j'essaie de trouver une solution mais je n'arrive pas voila mon probleme.
j'ai une form Visite qui comporte un combobox (nom et prenom) pour faire le choix et permettre d'afficher les données du client.
parmis ces données j'ai index, nom, prenoms, datenais,..... tous sont des données de la table Client.
j'ai une listebox qui comporte la liste des achats éffectues par le client (date, article,..) lié au client pas index

je veu que lorsqu'un choisi sur le combobox qu'il affiche les données lié à ce client (nom, prenom,... date, article).

je ne veu pas utiliser le dataset fortement type je veu programme l'accées aux données, la modificaiton, et autres.
Je ne me retrouve vraiement pas dans les terminologies, les utilisations (Dataset, DataAdapter, BindingSource, DataReader,...)

c'est le quel en defini d'abore?

ensuite vien la definition de quoi?

Comment mettre met deux tables dans le même dataset (si c'est possible)

comment liée le dataset au dataadapter au bindingsource
comment acceder aux données depuis le choix dans le combobox? et charger mon form avec les données selectionées?

Merci d'avance pour l'aide

7 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
Salut,

Tout d'abord, je te conseille d'aller faire un tour ici. Lis les 3 chapitres.

De plus tu pose beaucoup de questions sans donner de précisions sur ton projet, on ne connait pas le SGBD, ni le schéma de ta base, comment veux-tu que l'on te réponde précisément ?

Donne plus de détails :

je veu que lorsqu'un choisi sur le combobox qu'il affiche les données lié à ce client (nom, prenom,... date, article).


Afficher dans quoi ? Si dans une liste, de quel type ? Si dans des contrôles, utiliseront-il un BindingSource.

je ne veu pas utiliser le dataset fortement type je veu programme l'accées aux données


Ce n'est pas un choix entre l'un ou l'autre, tu peux utiliser la combinaison des deux, le dataset typé peut être instancié par code, et les requuêtes des TableAdaper peuvent-être modifiés.

@+ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
38
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
25 mars 2014

Bonjour,
je peux essayé de te débloquer mais comme le dit Mayzz, il est important de savoir quel type de BD tu utilises car la définition du dataset, data adapter ne sa pas la même

dans le projet
Private DR_LC As SqlDataReader
Private DA_Fic As New SqlDataAdapter
Private DS_Fic As New DataSet
Private WRowF As DataRow

'Alimentation de la CB
Req = "select distinct Nom,Prenom FROM Client"
With Cmd
.CommandType = CommandType.Text
.CommandText = Req
.Connection = Cnx
End With
DR_LC = Cmd.ExecuteReader()
CBClient.Items.Clear()
While DR_LC.Read()
CBClient.Items.Add(DR_LC("Nom).ToString() + " " +DR_LC("Prenom))
End While
DR_LC.Close()

'Selection de la CB
Code à mettre dans l'evenement de la CBClient "SelectedIndexChanged"
wClient = CBClient.SelectedItem

'Alimentation de la listview
Req = "SELECT * FROM Achats where Client='" & WClient & "'"
With Cmd
.CommandType = CommandType.Text
.CommandText = Req
.Connection = Cnx
End With
DA_Fic.SelectCommand = Cmd
DS_Fic.Clear()
DA_Fic.Fill(DS_Fic, "Achats")
l = 0
ListView1.SmallImageList = ImageList1
Do Until l > DS_Fic.Tables("Achats").Rows.Count - 1
WRowF = DS_Fic.Tables("Achats").Rows(l)
Dim Lvt As New ListViewItem
Lvt.Text = WRowF("article")
Lvt.ImageIndex = 1
ListView1.Items.Add(Lvt)
l = l + 1
Loop


Mais pourquoi ne pas utiliser un DatGrid à la place d'un ListView ?
En tout cas, j'espère que cela t'aura débloqué

Bonne journée !

Viviane
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
Heu... je n'ai pas bien compris, quel sont ces 'objets' des contrôles?

datareader sur un objet A => ok

datareader sur un objet B => ok

un dataset sur un objet C tous ayant pour clé numcli => un dataset n'a pas de clé, c'est un ensemble de Tables.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011

Ok merci pour le lien, j'utilise une base de données MS Access 2007, j'ai charger mon combobox :
ClientComboBox1.DisplayMember = "INDEXAFFIDSTANDART"
ClientComboBox1.ValueMember = "NUMClient"
ClientComboBox1.DataSource = DSet.Tables("Client")
ClientComboBox1.Text = ""
Numclient étant la clés de la table Client, et la clé sécondaire de la table article (data, article)
le nom, le prenom sont des textbox et ListBox3 et une listebox charger ainsi.

DReader = CommandOLE.ExecuteReader()
ListBox3.Items.Clear()
If DReader.HasRows Then
Do While DReader.Read()
ListBox3.Items.Add(DReader.GetValue(2).ToString + " " + DReader.GetValue(1).ToString + " " + DReader.GetValue(3).ToString)
Loop
DReader.Close()
End If
il faut noter que pour charger le commandOLE la requette est faite sur la table article comd = "SELECT ARTICLE.* FROM ARTICLE"

mon form comporte des textbox et la listebox pour les articles je veu affiche les données du client selection dans le form (textbox et listebox = pour l'article).
Mon souhait ai que cela soit dans un bindingSource.

"dataset typé peut être instancié par code, et les requuêtes des TableAdaper peuvent-être modifiés."

oui c'est que je veu faire.
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011

J'ai lu le document dans le lien, j'ai compris apresent comment structure mon form, ce que je veu savoir a présent comment peut ton lier un datareader sur un objet A et un datareader sur un objet B et un dataset sur un objet C tous ayant pour clé numcli.
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011

Oui c'est bien c'était une erreur pour la clé sur l'objet C lier au dataset. Merci pour les explications
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011

Bonjour j'ai un probléme avec la mise ajour de mes données en VB.net
voici le message d'erreur qu'il affiche : L'opération doit utiliser une requête qui peut être mise à jour.

vois le code :
que ce soit une un evenement click ou valided ça me donne le même message.


If PRENOMUSUELTextBox.Text = "" Then
MsgBox("Il faut entrer le prenom !")
Else

'on crée une commande avec le code d'une requête sql de mise à jour
Dim Mycommand1 As OleDbCommand = ConnexionOLE.CreateCommand()
Mycommand1.CommandText "UPDATE PATIENTS SET PATIENTS.PRENOMUSUEL'" & PRENOMUSUELTextBox.Text & "' WHERE ((PATIENTS.NUMPAT)=-2146250084)"

'on crée notre DataAdapter
Dim MyDataAdapter As New OleDbDataAdapter(Mycommand1)

'm'a connexion est déjà ouverte

MyDataAdapter.UpdateCommand = Mycommand1
'On éxécute notre requête
MyDataAdapter.UpdateCommand.ExecuteNonQuery() 'le message souligne cette ligne

End If