如何使用货币或百分比的数字格式查询Access字段?

时间:2013-03-01 18:31:28

标签: c# winforms ms-access

我有一个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%..我只是不确定格式化的正确方法。

1 个答案:

答案 0 :(得分:0)

我想出来了......不得不改变

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

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

Access想要查看-.1325,而不是-13.25