c#运行时错误信息
本文关键字:信息 运行时错误 | 更新日期: 2023-09-27 18:14:30
我一直得到一个错误,我不明白。必须声明标量变量"@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();
与其给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();
除了在调用ExecuteNonQuery
之前您的连接不是Open
之外,您应该为此做con.Open();
。
一个对资源更友好的代码应该如下所示:
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();
}
}
使用sc
代替' cmd '。并尝试从以下行中删除@符号:
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;
我认为你需要添加数据类型
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@Stockno", SqlDbType.Int);
command.Parameters["@@Stockno"].Value = customerID;
试试这个:
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();