0

サンプルの顧客レコードを含むデータベースにアクセスするには、ATM アプリを作成する必要があります。コンボ ボックスで、accountInformation テーブル (データベース) の口座番号を表示する際に問題が発生しています。私はデータベース接続を正しく作成したことを確信しており、私が持っているコードはコンボボックスに数字を表示すると思っていたので、何が問題なのかわかりません。変更する必要があるコンボボックスのプロパティに何かありますか? これが私のコードです:

using SQLDll;

namespace WindowsFormsApplication14
{

public partial class Form1 : Form
{
    private Connection myConnection;
    private Statement myStatement;
    private ResultSet myResultSet;
    String databaseURL = "http://www.boehnecamp.com/phpMyAdmin/razorsql_mysql_bridge.php";


    public Form1()
    {
        InitializeComponent();

        try
        {
            //connect to database
            SQL sql = new SQL();
            myConnection = sql.getConnection(databaseURL);
            //create Statement for executing SQL
            myStatement = myConnection.createStatement(databaseURL);
        }
        catch (Exception)
        {
            Console.WriteLine("Cannot connect to database server");
        }
        //close statement and database connection 
       myStatement.close();
       myConnection.close();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
       loadAccountNumbers();
    }

    public void setText(string text)
    {


    }
    //load account numbers to ComboBox
    private void loadAccountNumbers()
    {
        //get all account numbers from database
        try
        {
            myResultSet = myStatement.executeQuery("SELECT accountNumber FROM accountInformation");
            // add account numbers to ComboBox
            while (myResultSet.next())
            {
                accountNumberComboBox.Items.Add(myResultSet.getString("accountNumber"));
            }
            myResultSet.close(); // close myResultSet
        }//end try
        catch (Exception)
        {
            Console.WriteLine("Error in loadAccountNumbers");
        }
    }//end method to loadAccountNumbers
4

2 に答える 2

0

何が悪いのかわかりました。どこかで loadAccountNumbers() を呼び出さなければならないことはわかっていましたが、どこかわかりませんでした。public Form1() に配置すると、問題が解決しました! すべての助けをありがとう。

于 2012-10-31T17:35:11.320 に答える
0

すべてを 1 つのメソッドにまとめることをお勧めします。より読みやすく、例外が発生した場合でもすべてを確実に閉じることができます。

パブリック部分クラス Form1 : Form { プライベート接続 myConnection; プライベートステートメント myStatement; プライベートResultSet myResultSet; 文字列 databaseURL = "http://www.boehnecamp.com/phpMyAdmin/razorsql_mysql_bridge.php";

public Form1()
{
    InitializeComponent();
    loadAccountNumbers();
}

//load account numbers to ComboBox
private void loadAccountNumbers()
{
    SQL sql = new SQL();
    using (myConnection = sql.getConnection(databaseURL))
    using (myStatement = myConnection.createStatement(databaseURL))
    using (myResultSet = myStatement.executeQuery("SELECT accountNumber FROM accountInformation"))
    {
        // add account numbers to ComboBox
        while (myResultSet.next())
            accountNumberComboBox.Items.Add(myResultSet.getString("accountNumber"));
    }
}
于 2012-10-31T17:30:45.880 に答える