2017-11-13 15 views
0

コンボボックスにSELECTクエリの結果を入力します。コンボボックスにSELECT結果を入力してください

これは、コンボボックス内の行を示しているが、すべてである:System.Data.DataRow

SELECTの結果は、データテーブルに格納されています。

string ChaineDeSelction = "SELECT fir_mdnt FROM -- WHERE fir_aktiv = 1 AND EXISTS(select firbpv_fir from --)"; 
     OdbcConnection MyConnec = new OdbcConnection(MyConnString);  
     MyConnec.Open(); 
     OdbcCommand MyComm = new OdbcCommand(ChaineDeSelction, MyConnec); 
     DataTable.Load(MyComm.ExecuteReader()); 

     _cb_Societe.DataSource = DataTable; <--- I tried this way the the foreach .Add way but both return the same. 

     foreach(DataRow Ligne in DataTable.Rows) 
     { 
      _cb_Societe.Items.Add(Ligne); 
     } 

私も同じ

で満たさDataGridViewの任意の提案がありますか?

+0

使用コンボボックスのDisplayMemberとValueMemberでの特性について学ぶ必要があります。 –

答えて

0

そして、何:

string ChaineDeSelction = "SELECT fir_mdnt FROM -- WHERE fir_aktiv = 1 AND EXISTS(select firbpv_fir from --)"; 
     OdbcConnection MyConnec = new OdbcConnection(MyConnString); 
     MyConnec.Open(); 
     OdbcCommand MyComm = new OdbcCommand(ChaineDeSelction, MyConnec); 
     OdbcDataReader reader = MyComm.ExecuteReader(); 
     while (reader.Read()) 
     { 
      _cb_Societe.Items.Add(reader[0]); 
     }; 
+0

完璧に動作します、ありがとう – FistiPaul

2

DisplayMemberプロパティを使用して表示するフィールドを指定する必要があります。行全体ではありません。そしてDataTableReaderに保存する必要があります。以下の方法について

DataTable dt = new DataTable(); 
    dt.Load(MyComm.ExecuteReader()); 
_cb_Societe.DataSource = dt; 
_cb_Societe.DisplayMember = "fir_mdnt"; 
関連する問題