繁体   English   中英

System.Data.SqlClient.SqlException nvarchar浮动

[英]System.Data.SqlClient.SqlException nvarchar to float

我正在使用以下代码更新表:

 private void AddToQuotation()
    {
        con.Open();
        cmd = new SqlCommand(@"update JobQuotations
                                set    quo_discount     = @discount
                                ,      quo_unitPrice   = @unitPrice
                                ,      quo_TotalAmount = @totalAmount
                                ,      quo_finishing   = @finishing
                                where  quo_custname    = @customername
                                and    quo_verified    = 'Yes'", con);

        cmd.Parameters.AddWithValue("@customername",DropDownList3.SelectedItem.Value.ToString());
        cmd.Parameters.AddWithValue("@discount",txtDisc.Text);
        cmd.Parameters.AddWithValue("@unitPrice",txtUnitPrice.Text);

        cmd.Parameters.AddWithValue("@finishing",txtFinishing.Text);
        cmd.Parameters.AddWithValue("@totalAmount",lblTotalAmount.Text);
        cmd.ExecuteNonQuery();
        con.Close();
        string script = "alert(\"Functioning!\");";

        ScriptManager.RegisterStartupScript(this, GetType(),
            "ServerControlScript", script, true);
    }

而且我不断收到此错误:

System.Data.dll中发生类型'System.Data.SqlClient.SqlException'的异常,但未在用户代码中处理

附加信息:转换数据类型nvarchar时出错。

这段代码上次对我有用。我不知道发生了什么。

我建议您使用SqlDbType并将每个参数放入数据库中的相应类型,如下所示:

cmd.Parameters.Add (new SqlParameter("@unitPrice", SqlDbType.Float).Value = txtUnitPrice.Text ;

要么

cmd.Parameters.AddWithValue("@unitPrice", SqlDbType.Float).Value = txtUnitPrice.Text;

您是否更改了数据库中字段的数据类型,但不接受该值? 如果您不这样做,则必须...。因为数据类型不同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM