0

我有一个 Access 数据库,在一个表中我有这个字段:

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 想要查看 -.1325,而不是 -13.25

于 2013-03-01T19:47:29.503 回答