Connexion et alimentation d'un combobox [Résolu]

mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 9 déc. 2008 à 11:18 - Dernière réponse : mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention
- 17 déc. 2008 à 16:11
bonjour, je dois créer un application en c# mais j'arrive pas à créer une connexion avec ma base de données (il faut utiliser odbc ou olebd je pense)
et donc je ne peux pas alimenter ma combo box.

mon code de connexion:

  System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
       Connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source= D:\***.mdb";
       OleDbConnection.Open()

ma requete pour ma combobox:
select Titre from Revue;

merci de votre aide
Afficher la suite 

Votre réponse

52 réponses

Meilleure réponse
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 17 déc. 2008 à 15:47
3
Merci
oui oui ma combo est bien alimenté par select Titre from Revue";
mais ce qui posse problème est ce qui est souligné dans : SELECT RaisonSociale,Adresse,DateFin FROM ABONNEMENT,REVUE WHERE ABONNEMENT.CodeRevue=Revue.Code AND Code.Revue = @code ";
J'ai essayé Revue.Code ou CodeRevue à la place mais caa change rien

Merci mattpeufpeuf 3

codes-sources a aidé 80 internautes ce mois-ci

Commenter la réponse de mattpeufpeuf
Meilleure réponse
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 17 déc. 2008 à 15:55
3
Merci
il te faut des cours de SQL :) , le Combo est alimenté par titre , donc la requete "..... AND Revue.Titre = @titre " ce que je t'ai donné juste un exemple de jointure .

Merci cs_bellak 3

codes-sources a aidé 80 internautes ce mois-ci

Commenter la réponse de cs_bellak
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 9 déc. 2008 à 14:59
0
Merci
Salut ,
vous n'allez qu'a faire une petite recherche .
non je plaisante ,

string Sql = "select Titre from Revue";
DataSet DTSet = new DataSet();
OleDbDataAdapter DTA = new OleDbDataAdapter(Sql, Conn);
try
{
DTA.Fill(DTSet, "Revue");
}
catch
{
MessageBox.Show("Une erreur est survenue");
}
COMBO.DataSource =DTSet.Tables["Revue"];
COMBO.DisplayMember = "Revue";
COMBO.ValueMember = "Revue";
Bon dev
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 11 déc. 2008 à 10:52
0
Merci
ok merci beaucoup mais pour la connexion à ma base de donnée? parce que ce que j'ai mis ne fonctionne pas

  System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
            Conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source= D:\Users\Matthieu\Documents\Ecole\2tsig\S3\C#\Projet EPOKA\Presse.mdb";
            OleDbConnection.Open();
            string Sql "select Titre from Revue"; DataSet DTSet new DataSet();
            OleDbDataAdapter DTA = new OleDbDataAdapter(Sql, Conn);
            try { DTA.Fill(DTSet, "Revue"); }
            catch { MessageBox.Show("Une erreur est survenue"); } comboBox.DataSource = DTSet.Tables["Revue"];
            comboBox.DisplayMember = "Revue";
            comboBox.ValueMember = "Revue";

mes erreurs

Erreur    1    Le nom 'Conn' n'existe pas dans le contexte actuel  
Erreur    2    Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Data.Common.DbConnection.Open()'   
Erreur    3    Le nom 'Conn' n'existe pas dans le contexte actuel  
Commenter la réponse de mattpeufpeuf
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 11 déc. 2008 à 10:52
0
Merci
ok merci beaucoup mais pour la connexion à ma base de donnée? parce que ce que j'ai mis ne fonctionne pas

  System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
            Conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source= D:\Users\Matthieu\Documents\Ecole\2tsig\S3\C#\Projet EPOKA\Presse.mdb";
            OleDbConnection.Open();
            string Sql "select Titre from Revue"; DataSet DTSet new DataSet();
            OleDbDataAdapter DTA = new OleDbDataAdapter(Sql, Conn);
            try { DTA.Fill(DTSet, "Revue"); }
            catch { MessageBox.Show("Une erreur est survenue"); } comboBox.DataSource = DTSet.Tables["Revue"];
            comboBox.DisplayMember = "Revue";
            comboBox.ValueMember = "Revue";

mes erreurs

Erreur    1    Le nom 'Conn' n'existe pas dans le contexte actuel  
Erreur    2    Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Data.Common.DbConnection.Open()'   
Erreur    3    Le nom 'Conn' n'existe pas dans le contexte actuel  
Commenter la réponse de mattpeufpeuf
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 11 déc. 2008 à 17:17
0
Merci
ca marche ma connexion
ma requete aussi mais dans ma combobox ca affiche :
System.Data.DataRowView

et de plus ceci bug
 //comboBox.DisplayMember = "Revue";
           // comboBox.ValueMember = "Revue";
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 12 déc. 2008 à 10:38
0
Merci
Salut ,
System.Data.DataRowView ??.
j'ai pas compris , les items du Combo sont System.Data.DataRowView ou quoi ??.
pour le chemin du BDD il faut mieux utiliser le dossier de l'exe :
string PATH = Application.ExecutablePath;
Path = Path.Substring(0,Path.LastIndexOf("\"));
this.ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + "\\Presse.mdb";
DisplayMember : élément du DataSource qui sera afficher à l'utilisateur
ValueMember : l'élément qui sera retourné au nivo du COMBO.SelectedItem
Commenter la réponse de cs_bellak
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 12 déc. 2008 à 10:51
0
Merci
pardon si c'est illisible , j'ai un probleme dans mon navigateur .
puisque vous travailler en mode deconnecté , je vous conseille de fermer a chaque fois la connexion Conn.close();
et pour l'ouvrir il suffit d'ecrire : Conn.open();
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 12 déc. 2008 à 11:00
0
Merci
dans ma combobox au lieu d'afficher les libellées (donc le nom de mes revues) cela affiche System.Data.DataRowView et 3fois (3fois car j'ai 3tuples)
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 12 déc. 2008 à 11:06
0
Merci
Tu as corrige tes erreurs Conn-->conn , OleDbConnection.Open()-->conn.open() ,??
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 12 déc. 2008 à 11:17
0
Merci
oui oui, j'ai tout bien remplacé. c'est juste pour l'affichage des revues le problème.

comboBox.DisplayMember = "Revue";

c'est surtout celui qui suit qui ne fonctionne pas. il n'y pas possibilité d'un data set?
          comboBox.ValueMember = "Revue";
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 12 déc. 2008 à 11:24
0
Merci
pardon , pardon , c'est pas "Revue" , c'est le champ "Titre" pour Display et Value
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 12 déc. 2008 à 11:33
0
Merci
grand merci!! ca fonctionne!!!

encore une question je dois alimenter une datagrid view en raport avec la revue choisi. c'est à dire quand je choisis "le monde" je dois voir tous les abonnés.
comment dois être dans la requete sql where "combox.text=coderevue" pour afficher les données des abonées

encore merci ;)
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 12 déc. 2008 à 16:46
0
Merci
pour les DataGridView vous utilisez que DataSource et pour la requete si j'ai bien compris la question : string Sql ="SELECT * FROM REVUE WHERE CODE =" + Combo.text;
sinon pour etre plus propre dans ton code vous utilisez les requetes parametrees :
string Sql "SELECT * FROM REVUE WHERE CODE @code ";
OleDbDataAdapter DTA = new OleDbDataAdapter(Sql,conn);
DTA.SelectCommande.Parameters.Add("@code",Combo.text);
juste une remarque , a chaque changement il faut vider le DataSet : DTSet.clear(); ou bien juste la table ça depend des besoins : DTSet.Tables["REVUES"].clear();
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 12 déc. 2008 à 23:07
0
Merci
et comment fais ton pour le data source de la datagridview
genre datagridview.colums1.text??
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 13 déc. 2008 à 10:49
0
Merci
tu veux alimenter ton DataGridView avec l'item du Combo ou bien ton Combo avec une cellule du DataGridView ??
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 13 déc. 2008 à 11:17
0
Merci
je pense que des images serait plus simple
voila le resultat attendu

 et mes tables
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 13 déc. 2008 à 22:37
0
Merci
donc tu dois creer une jointure entre les deux tables et en fonction de la valeur du Combo tu alimentes le DataGridView .
Commenter la réponse de cs_bellak
mattpeufpeuf 33 Messages postés lundi 22 octobre 2007Date d'inscription 18 décembre 2008 Dernière intervention - 13 déc. 2008 à 23:25
0
Merci
effectivement, mais je ne vois pas comment faire en c#.
Commenter la réponse de mattpeufpeuf
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 14 déc. 2008 à 00:07
0
Merci
javascript:Insert_Emoticon('/imgs2/smile_question.gif'); c'est une requete sql ça n'a rien avoir avec c# ,mais ....
"SELECT RaisonSocial,Adresse,DateFin FROM ABONNEMENT,REVUE WHERE ABONNEMENT.CodeRevue=Revue.Code AND Code.Revue = @code ";
mais je vous conseille de prendre des cours Sql .
bon dev javascript:Insert_Emoticon('/imgs2/smile_wink.gif');
Commenter la réponse de cs_bellak

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Connexion et alimentation d'un combobox - page 2