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();

c#运行时错误信息

与其给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();