我一直收到一个我不明白的错误。必须声明标量变量“@q”
数小时的研究,尝试了多种解决方案但没有成功。
SqlCommand sc = new SqlCommand(
"UPDATE Stockmaster SET Curbalqty=@q WHERE Stockno= @Stockno");
cmnd.Parameters.AddWithValue("@Stockno", s);
cmnd.Parameters.AddWithValue("@q", q);
sc.Connection = con;
sc.ExecuteNonQuery();
答案 0 :(得分:1)
您应该将参数添加到cmnd
sc
试试这个
SqlCommand sc = new SqlCommand("UPDATE Stockmaster SET Curbalqty=@q WHERE Stockno= @Stockno");
sc.Parameters.AddWithValue("@Stockno", s);
sc.Parameters.AddWithValue("@q", q);
sc.Connection = con;
con.Open();
sc.ExecuteNonQuery();
con.Close();
除了在致电Open
之前您的联系不是ExecuteNonQuery
,您应该为此con.Open();
做。{/ p>
更加资源友好的代码如下所示:
using (SqlConnection con = new SqlConnection("your connection string"))
{
using (SqlCommand sc = new
SqlCommand("UPDATE Stockmaster SET Curbalqty= @q WHERE Stockno= @Stockno"))
{
sc.Parameters.AddWithValue("@Stockno", s);
sc.Parameters.AddWithValue("@q", q);
sc.Connection = con;
con.Open();
sc.ExecuteNonQuery();
con.Close();
}
}
答案 1 :(得分:-1)
使用sc
代替' cmnd'。并尝试从以下行中删除@符号:
sc.Parameters.AddWithValue("@Stockno", s);
sc.Parameters.AddWithValue("@q", q);
并执行以下操作:
sc.Parameters.Add("Stockno", SqlDbType.VarChar).Value = s;
sc.Parameters.Add("q", SqlDbType.VarChar).Value = q;
答案 2 :(得分:-2)
我认为您需要添加数据类型
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@Stockno", SqlDbType.Int);
command.Parameters["@@Stockno"].Value = customerID;
答案 3 :(得分:-3)
试试这个:
SqlCommand sc = new SqlCommand("UPDATE Stockmaster SET Curbalqty= " + @q + " WHERE Stockno= " + @Stockno);
cmnd.Parameters.AddWithValue("@Stockno", s);
cmnd.Parameters.AddWithValue("@q", q);
sc.Connection = con;
sc.ExecuteNonQuery();