无法将文本框中的十进制数插入数据库

时间:2013-06-08 06:23:52

标签: asp.net sql web

我正在努力让我的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)任何想法?

1 个答案:

答案 0 :(得分: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.");
}