1

ComboBox でスコアを表示する次のコードを作成しました。これをすべてpopulate()メソッドに記述し、それをフォーム ロードと呼びますが、空のコンボ ボックスが表示されます。このコードの何が問題なのか教えてください。

DatabaseConnection 用に別のクラスを作成しました。

public void populate()
    {
        DatabaseConnection connection = new DatabaseConnection();
        OleDbCommand cmd = new OleDbCommand("Select score from Info", connection.Connection());
        connection.Connection().Open();
        OleDbDataReader reader = cmd.ExecuteReader();

        while (reader.Read())
        {

            comboBox1.Items.Add(reader[0].ToString());

        }
        connection.Connection().Close();


    }
4

2 に答える 2

1

コマンドを入力する前に、常に接続を開く必要があります。また、未処理の SQL 例外を防ぐために、try catch ステートメントを使用します。このようにしてみてください:

    public void populate()
    {
       DatabaseConnection connection = new DatabaseConnection();
       try{
       connection.Connection().Open();
       OleDbCommand cmd = new OleDbCommand;
       cmd.Connection = connection.Connection();
       cmd.ComandText = "Select score from Info"
       OleDbDataReader reader = cmd.ExecuteReader();

           while (reader.Read())
           {   
                comboBox1.Items.Add(reader[0].ToString());
           }
        }
       catch(SqlException e){



      }
      finaly{
        connection.Connection().Close();
      }


}
于 2013-04-27T13:11:18.880 に答える