0

我正在努力让我的 sql 数据库从我的网站页面上的文本框中接受小数。当我输入一个整数时没有问题,只有当我输入一个小数 (123.45) 时,我才会遇到问题。我已经尝试过double.parse(textbox.text)decimal.parse(textbox.text)但无济于事。

我收到错误消息

输入字符串的格式不正确

我的插入语句如下:

"INSERT INTO Transactions (Date, Account, Payee, Chq_Num, Reference, GST_Rate, 
 Amount, Document_Number, Bank_Account) VALUES ('" & yy & "-" & mm & "-" & dd & 
 "','" & DropDownList3.SelectedValue & "','" & TextBox3.Text & "','" & 
 TextBox5.Text & "','" & TextBox4.Text & "'," & DropDownList2.SelectedValue & 
 "," & Double.Parse(TextBox6.Text) & "," & TextBox27.Text & ",'" &  
 DropDownList1.SelectedValue & "'); INSERT INTO Cash (Date, Bank_Account, 
 Amount, Document_Number) VALUES ('" & yy & "-" & mm & "-" & dd & "','" & 
 DropDownList1.SelectedValue & "'," & Double.Parse(TextBox2.Text) & "," & 
 TextBox27.Text & ");"

我的数据库字段设置为十进制(18,2)有什么想法吗?

4

1 回答 1

0

您的错误消息表明输入字符串的格式不正确。表示您正在尝试将错误的值转换为十进制。

在代码周围放置一个 try/catch 以查看传递给 ParseDouble 的内容。这应该有助于确定导致问题的原因,并有助于确定问题的来源。用户是否在文本框中输入它?

请尝试使用“double.TryParse”代替“Double.Parse”。

double temp = 0;
if (double.TryParse("123.456", out temp)
{
    Console.WriteLine(string.Format("Parsed temp: {0}", temp);
}
else
{
    Console.WriteLine("Input value was not able to be parsed.");
}
于 2013-06-08T06:39:20.627 回答