用sqlparameter必须声明标量变量 "@id"

string sql = "update view1 set E_Name='@name' where E_ID=@id";
SqlParameter[] para =
{
new SqlParameter("@name",name),
new SqlParameter("@no",id)
};
if( database.ExecuteNonQuery(sql, para)>=0)


public static int ExecuteNonQuery(string sql,SqlParameter[] para)
{
if (co.State == ConnectionState.Closed)
{
co.Open();
}
SqlCommand com = new SqlCommand(sql);
com.Connection = co;
com.CommandText = sql;
com.Parameters.AddRange(para);
int i = com.ExecuteNonQuery();
return i;
if (co.State == ConnectionState.Open)
{
co.Close();
co.Dispose();
}
为什么会出现必须声明标量变量 "@id"

做毕业设计时候用到了GridView这个控件,但是删除数据的时候出现问题:必须声明标量变量 "@ID"解决办法如下:将改成DataKeyNames="ID" DataSourceID="SqlDataSource1">就可以了,也就是把ID定义为主键......
答案就在这里:必须声明标量变量 "@ID"
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

你sql语句里面是@id,你传递的参数名称是@no啊,那不是报错了。而且不需要用引号扩起@name
string sql = "update view1 set E_Name=@name where E_ID=@id";

图片说明
你注意你写的没有为@id 赋值啊