Connexion et alimentation d'un combobox

Résolu
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008
- 9 déc. 2008 à 11:18
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008
- 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

52 réponses

mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

17 déc. 2008 à 15:47
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
3
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

17 déc. 2008 à 15:55
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 .
3
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

9 déc. 2008 à 14:59
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
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

11 déc. 2008 à 10:52
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  
0

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

Posez votre question
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

11 déc. 2008 à 10:52
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  
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

11 déc. 2008 à 17:17
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";
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

12 déc. 2008 à 10:38
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
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

12 déc. 2008 à 10:51
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();
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

12 déc. 2008 à 11:00
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)
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

12 déc. 2008 à 11:06
Tu as corrige tes erreurs Conn-->conn , OleDbConnection.Open()-->conn.open() ,??
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

12 déc. 2008 à 11:17
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";
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

12 déc. 2008 à 11:24
pardon , pardon , c'est pas "Revue" , c'est le champ "Titre" pour Display et Value
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

12 déc. 2008 à 11:33
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 ;)
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

12 déc. 2008 à 16:46
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();
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

12 déc. 2008 à 23:07
et comment fais ton pour le data source de la datagridview
genre datagridview.colums1.text??
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

13 déc. 2008 à 10:49
tu veux alimenter ton DataGridView avec l'item du Combo ou bien ton Combo avec une cellule du DataGridView ??
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

13 déc. 2008 à 11:17
je pense que des images serait plus simple
voila le resultat attendu

 et mes tables
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

13 déc. 2008 à 22:37
donc tu dois creer une jointure entre les deux tables et en fonction de la valeur du Combo tu alimentes le DataGridView .
0
mattpeufpeuf
Messages postés
33
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2008

13 déc. 2008 à 23:25
effectivement, mais je ne vois pas comment faire en c#.
0
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

14 déc. 2008 à 00:07
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');
0