System.Data.SqlClient.SqlException nvarchar浮动

时间:2016-05-12 10:27:34

标签: c# mysql

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

 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.SqlClient.SqlException'类型的异常   System.Data.dll但未在用户代码中处理

     

其他信息:转换数据类型nvarchar时出错。

这段代码上次为我工作。我不知道发生了什么。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您是否更改了数据库中字段的数据类型并且它不接受该值?如果你没有那么你必须....因为数据类型是不同的