2017-05-26 2 views
0

私のコードに少し問題があります。私は、データベースフィールドにコンボボックスを埋めるためにしたい:データベースフィールドにコンボボックスを埋めたい

 const string connMysql = "DataSource=localhost; Database=ph; Uid=root; Pwd=;"; 
      myConn = new MySqlConnection(connMysql); 
      string cad = "SELECT answers FROM `questions` WHERE (`test_num` = '1')"; 
      myConn.Close(); 
      myConn.Open(); 
      myCommand = new MySqlCommand(cad, myConn); 
      myReader = myCommand.ExecuteReader();    
      if (myReader.Read()) 
      { 
       CB1.Items.Clear(); 
       CB1.Items.Add(myReader[0].ToString()); 
} 

私はこれを使用してcomboboxでちょうど1つのフィールドを維持し、私は「答え」のすべてのコンテンツでいっぱいにしたいです。

+1

のすべての内容を記入してください。 'if(myReader.Read())'は一度読んでみてください。コンボボックスをクリアして最初の値だけを追加しています。あなたができることは 'while(myReader.Read())'(テストされていません)を使用して、あなたの中に値を追加し続けることです。あなたはそれのためのカウンターが必要になります。 –

+0

クエリで行が返されますか? – Fabiano

+0

もしあなたがコンボボックス内のすべてをしたいのであれば、 'myReader [0]'をちょうど1回追加しないでください。コレクション/データをループしてバインドしてください。これを行う方法はすべてインターネットで行われます – EpicKip

答えて

0

すべての答えのおかげで、これは私が何をすべきかです:

 const string connMysql = "DataSource=localhost; Database=ph; Uid=root; Pwd=;"; 
     myConn = new MySqlConnection(connMysql); 
     string cad = "SELECT answers FROM `questions` WHERE (`test_num` = '1');"; 
     myConn.Close(); 
     myConn.Open(); 
     myCommand = new MySqlCommand(cad, myConn); 
     myReader = myCommand.ExecuteReader(); 
     CB1.Items.Clear(); 
     while (myReader.Read()) 
     { 
      CB1.Items.Add(myReader[0].ToString()); 
      } 

comboboxは、あなたのコードは実際には1つのフィールドを維持するために作成された「答え」

+0

あなたの質問に答えた場合、正しい答えを選択する必要があります –

0

他にも述べたように、1つのフィールドだけを追加して、クエリの処理を繰り返します。

const string connMysql = "DataSource=localhost; Database=ph; Uid=root; Pwd=;"; 
     myConn = new MySqlConnection(connMysql); 
     string cad = "SELECT answers FROM `questions` WHERE (`test_num` = '1')"; 
     myConn.Close(); 
     myConn.Open(); 
     myCommand = new MySqlCommand(cad, myConn); 
     myReader = myCommand.ExecuteReader();  
     int i = 0; 
     CB1.Items.Clear(); //Clear the Combo box once before adding values 
     while(myReader.Read()) 
     { 
      CB1.Items.Add(myReader[i].ToString()); 
      i++; 
     } 
+0

あなたのコードはComboBoxをクリアし続け、最後のフィールドだけが見つかるでしょう。 –

+0

CB1.Items.Clearを読んだら、もう一度やり直してください –

関連する問題