0

ここでテキストボックスを介して入力されたcustomerIDを使用して検索される情報をテキストボックスに入力しようとしているのは、以下で使用しているコードです。

private void txtCustomerID_TextChanged(object sender, EventArgs e)
{
    string strCon = Properties.Settings.Default.PID2dbConnectionString;
    OleDbConnection conn = new OleDbConnection(strCon);

    String sqlPoints = "SELECT points FROM customer WHERE [customerID]=" +   txtCustomerID.Text;
     txtPoints.Text = sqlPoints;
}

しかし、テキストボックス「txtPoints」はsqlpointsのテキストのみを出力し、データベース内の情報は出力しませんか?ここで何が間違っているのか正確にはわかりません。

よろしくお願いします。

4

1 に答える 1

1

データベースでSQLステートメントを実行していません。代わりに、に割り当てますtxtPoints.Text。たとえば、OleDbCommandオブジェクトを使用してDBサーバーで実行する必要があります。

代わりに行う必要があるのは、次のようなものです(これは擬似コードであることに注意してください-私はそれが実行されることをテストしていません)

using (OleDbConnection conn = new OleDbConnection(strCon))
{
    String sqlPoints = "SELECT points FROM customer WHERE [customerID]=" +   txtCustomerID.Text;

    // Create a command to use to call the database.
    OleDbCommand command = new OleDbCommand(sqlPoints, conn)

    // Create a reader containing your results
    using(OleDbReader reader = command.ExecuteReader()) 
    {
        reader.Read(); // Advance to the first row.
        txtPoints.Text = reader[0].ToString(); // Read the contents of the first column
    }
}

を使用する私の使用にも注意してください。これにより、データベース接続が終了すると、データベース接続が適切に閉じられます。

于 2013-01-10T16:24:12.547 に答える