以下代码今天早上工作得非常好,但现在提供了#34;必须声明标量变量" @ Quantity"我在这个和其他网站上尝试了很多建议 - 但仍然无法解决问题。我今天早上对表单所做的唯一更改是添加了一个复选框。我尝试删除@Quantity var,错误只是转到@operator(下一行)我的代码给出错误如下:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection TSTTWI = new SqlConnection("Data Source=TS-ERP01;Initial Catalog=TST-TWI;Integrated Security=True");
{
SqlCommand nc = new SqlCommand ("Insert into NCM (Quantity, Operator, NonConformance, Date, Description, PN, RMA) Values (@Quantity, @Operator, @NonConformance, @Date, @Description, @PN, @RMA)", TSTTWI);
TSTTWI.Open();
nc.ExecuteNonQuery();
TSTTWI.Close();
nc.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
nc.Parameters.AddWithValue("@Operator", txtName.Text);
nc.Parameters.AddWithValue("@NonConformance", txtNonConf.Text);
nc.Parameters.AddWithValue("@Date", txtDate.Text);
nc.Parameters.AddWithValue("@Description", txtDescript.Text);
nc.Parameters.AddWithValue("@PN", DDPartNo.Text);
nc.Parameters.AddWithValue("@RMA", txtRMA.Text);
if (IsPostBack)
{
答案 0 :(得分:2)
在添加参数之前,您似乎正在尝试执行nc。也许尝试将此块移动到您要添加参数的部分下方。
nc.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
nc.Parameters.AddWithValue("@Operator", txtName.Text);
nc.Parameters.AddWithValue("@NonConformance", txtNonConf.Text);
nc.Parameters.AddWithValue("@Date", txtDate.Text);
nc.Parameters.AddWithValue("@Description", txtDescript.Text);
nc.Parameters.AddWithValue("@PN", DDPartNo.Text);
nc.Parameters.AddWithValue("@RMA", txtRMA.Text);
TSTTWI.Open();
nc.ExecuteNonQuery();
TSTTWI.Close();
答案 1 :(得分:0)
你正在同时对错误进行处罚。
TSTTWI.Open();
nc.ExecuteNonQuery();
TSTTWI.Close();
使用此代码,您将打开连接,执行命令并关闭连接。然后在这一行下方开始添加参数
nc.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
nc.Parameters.AddWithValue("@Operator", txtName.Text);
....
正确的方法是:
try{
TSTTWI.Open();
nc.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
nc.Parameters.AddWithValue("@Operator", txtName.Text);
....
nc.ExecuteNonQuery();
TSTTWI.Close();
}
catch(Exception exception){
//log the exception somewhere
}