gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011
-
30 juil. 2009 à 20:49
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011
-
11 août 2009 à 19:03
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?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 30 juil. 2009 à 23:09
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.
cs_viviane44
Messages postés38Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention25 mars 2014 31 juil. 2009 à 11:24
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é
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011 31 juil. 2009 à 11:27
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011 31 juil. 2009 à 13:14
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.
gillestang
Messages postés58Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention10 juin 2011 11 août 2009 à 19:03
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