C#窗体必须声明标量变量@headcuscode 10
case1:stringsqlupdat="updateinvnoiceheadsetcuscode=@headcuscode,divsion=@headivsionwh...
case 1: string sqlupdat = "update invnoicehead set cuscode=@headcuscode,divsion=@headivsion where swc='" + label17.Text + "' and invno='" + label18.Text + "' ";//请问这里是不是一定要用存储过程才可以 SqlCommand cmd = new SqlCommand(); cmd.Connection = bs.getcon(); cmd.CommandText=sqlupdat; cmd.Parameters.AddWithValue("@headcuscode", headcuscode.Text.Trim()); cmd.Parameters.AddWithValue("@headivsion", headivsion.Text.Trim());
bs.getcom(sqlupdat); break;
提示:必需申请标量变量@headcuscode运行时出现下图:
我QQ:283564737 展开
bs.getcom(sqlupdat); break;
提示:必需申请标量变量@headcuscode运行时出现下图:
我QQ:283564737 展开
展开全部
你这里写sql语句是没问题的,没看到你执行cmd的地方,你确定你报错的执行的这个case吗?你这个case里面是有声明你那个参数的。cmd用存储过程还是语句,都可以的。写好 cmd.CommandType = CommandType.Text; 的对应属性就行。
追问
bs.getcom()个方法就是执行SQL语句的是我定义的一个方法,是在运么窗体时出现上图没有声明标量,case有那个状太为1就执行它,没有写存储过程就是上面的sqlupdat这个语句,这个commandtype.text=sqlupdat就相当是你说的那个cmd.CommandType = CommandType.Text; 的对应属性,你加我QQ吧:283564737我弄了一个星期没弄好
谢谢
追答
不对,你应该是在 bs.getcom(sqlupdat); 执行的语句,我知道你是什么问题了,你这里声明了cmd参数,但是没有把它带到你执行语句的cmd里面去,所以才会提示为申明参数。如果这个 bs.getcom(sqlupdat);方法不是你写的,那你现在还是不要用别人的,自己先一步步来,弄熟练了,你再调用别人的。 bs.getcom(sqlupdat,cmd); 另外 cmd执行的类型是类型,语句是语句,哪怕你text的值是存储过程,而你type是text,cmd也会把你这个语句当作普通的sql语句,而不是像你设置类型为存储过程的时候 ,自动加上 exec 之类的关键字执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询