0

Access db があり、テーブルに次のフィールドがあります。

Field Name: FieldA
Data Type: Number
Field Size: Double
Format: Percent

フォームには、tBD という名前のテキスト ボックスがあります。ユーザーが値を入力し、Button1 をクリックすると、クエリが実行されます。結果は、tV という名前のテキスト ボックスに格納されます。これが私のコードです:

OleDbConnection conn = null;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=c:\\mydatabase.accdb");
conn.Open();

double bd = Convert.ToDouble(tBD.Text);

string sql = string.Format("SELECT Something FROM Table1 where [FieldA] = {0}", bd);
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();

if (dr.HasRows == true)
{
    while (dr.Read())
    {
        tV.Text = dr.GetValue(0).ToString();
    }
}
else
{
    tV.Text = "0";
}

Access で FieldA を見ると、次のような値があります。

-15.00%
-13.25%
-18.00%
-12.50%

ユーザーが tBD.Text に入力した値をフォーマットする方法、および/またはコードでフォーマットしてクエリで意味をなす方法がわかりません。

また、データ型が通貨の場合も同じ問題が発生しています。ユーザーは入力した値をどのようにフォーマットする必要があり、コード内でどのようにフォーマットするのですか?

何か案は?ありがとう!

編集:

私は試した

string sql = string.Format("SELECT Something FROM Table1 where [FieldA] = {0:0.00%}", bd);

しかし、それは-15.00を-1500.00%に変えます..これをフォーマットする適切な方法がわかりません。

4

1 に答える 1

0

私はそれを理解しました..変更しなければなりませんでした

double bd = Convert.ToDouble(tBD.Text);

double bd = Convert.ToDouble(tBD.Text)/100;

Access は -13.25 ではなく -.1325 を見たい

于 2013-03-01T19:47:29.503 に答える