2

我正在尝试将小数添加到数字。示例:1.45、46.12 但我遇到了异常。

cn.Open();
string sqlquery = ("INSERT INTO table(ID, Name, Price, HowMuch, Localization, Description) VALUES(@ID, @Name, @Price, @HowMuch, @Localization, @Description)");
SqlCeCommand cm = new SqlCeCommand(sqlquery, cn);
cm.Parameters.AddWithValue("@ID", textBox1.Text);
cm.Parameters.AddWithValue("@Name", textBox2.Text);
cm.Parameters.AddWithValue("@Price", textBox3.Text);
cm.Parameters.AddWithValue("@HowMuch", textBox4.Text);
cm.Parameters.AddWithValue("@Localization", textBox5.Text);
cm.Parameters.AddWithValue("@Description", textBox6.Text);

异常消息:“输入字符串的格式无效。”。我正在使用 System.Data.SqlServerCe

4

3 回答 3

0

至少你应该使用类似的东西:

cm.Parameters.AddWithValue("@Price", string.Format("{0:C}", textBox3.Text));

但是在没有任何控制之前,将用户值直接设置为浮点数有点棘手。然后执行以下操作:

try
{
  cm.Parameters.AddWithValue("@Price", string.Format("{0:C}", textBox3.Text));
}
catch
{
  /// do something to alert user value is not corretly formatted
}
于 2013-08-15T21:12:47.673 回答
0

你可以试试这个: -

 SqlCeParameter parameter = new SqlCeParameter();
 parameter.SqlDbType = SqlDbType.Decimal;
 parameter.Precision = 18;
 parameter.Scale = 0;
 parameter.Value = textBox3.Text;
cm.Parameters.Add(parameter);
于 2013-08-15T21:13:06.310 回答
0

我认为首先确保它textBox3.Text是一个有效的小数是个好主意......在你进入插入例程之前。

decimal price = Convert.ToDecimal(textBox3.Text);

然后你可以添加参数和值:

using System.Data;
cm.Parameters.Add("@Price", SqlDbType.Decimal).Value = price;

SqlDbType 是 System.Data 的一部分。

于 2020-02-19T00:42:29.520 回答