我正在使用以下代码更新我的表:
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时出错。
这段代码上次为我工作。我不知道发生了什么。
答案 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)
您是否更改了数据库中字段的数据类型并且它不接受该值?如果你没有那么你必须....因为数据类型是不同的