我有一个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%..我只是不确定格式化的正确方法。
答案 0 :(得分:0)
我想出来了......不得不改变
double bd = Convert.ToDouble(tBD.Text);
到
double bd = Convert.ToDouble(tBD.Text)/100;
Access想要查看-.1325,而不是-13.25