我不能把double加到Parameters.AddWithValue

时间:2013-08-15 21:02:25

标签: c# sql database sql-server-ce double

我正在尝试将小数添加到数字中。示例: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

3 个答案:

答案 0 :(得分:0)

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

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

但是在没有任何控制权之前将用户值直接放入float是有点棘手的。然后做一些事情:

try
{
  cm.Parameters.AddWithValue("@Price", string.Format("{0:C}", textBox3.Text));
}
catch
{
  /// do something to alert user value is not corretly formatted
}

答案 1 :(得分:0)

你可以试试这个: -

 SqlCeParameter parameter = new SqlCeParameter();
 parameter.SqlDbType = SqlDbType.Decimal;
 parameter.Precision = 18;
 parameter.Scale = 0;
 parameter.Value = textBox3.Text;
cm.Parameters.Add(parameter);

答案 2 :(得分:0)

我认为在进入插入例程之前确保@(Html.DevExtreme().DataGrid() .ID("gridContainer") .Scrolling(s => s.ColumnRenderingMode(GridColumnRenderingMode.Virtual)) .Paging(p => p.Enabled(false)) .ShowBorders(true) .Height(600) .ColumnAutoWidth(true) .Editing(editing => { editing.Mode(GridEditMode.Cell); editing.AllowUpdating(true); editing.AllowAdding(false); }) .DataSource(ViewBag.Student) ) 首先是有效的小数是一个好主意。

textBox3.Text

然后您可以使用以下方法添加参数和值:

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

SqlDbType是System.Data的一部分。