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
展开
 我来答
printf59277
2015-08-13 · TA获得超过1080个赞
知道大有可为答主
回答量:1812
采纳率:33%
帮助的人:1270万
展开全部
你这里写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 之类的关键字执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式