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%に変えます..これをフォーマットする適切な方法がわかりません。