收录日期:2018/08/17 09:51:07 时间:2016/05/20 21:31:47 标签:ASP.NET
由于exec()里面的select语句要用单引号,而select语句中=后面的常量也要用单引号,这样,exec()执行的语句就不对了。请教各位,如何解决这个问题?
就是下面这个找不及格人数的语句~怎么放到exec()中去?
select distinct xm,studentid,score,course,coursevalue,courseid from xjb,'+@tablename+'  where xjb.xh=studentid  and ((score ='F') OR (score <> '100') AND (LEN(score) >= 2) AND (SUBSTRING(score, 1, 1) NOT IN ('6', '7', '8', '9'))) order by 1
打三个单引号表示一个引号
@tablename

这个不用加单引号
to panyee(快乐王子):
    谢谢您的解答,那时我复制时把这个也复制了,:)
to shuncy(天才笨蛋):
    好像不行哎,我把以上语句中的F,100等加了三个单引号后,查询的结果是错的。如果就单引号,在查询分析器里是正确的,即输出不及格人的信息,但是加了三个引号后,把及格的人分数和人也输出了。请问这里怎么回事?
to 大家:
    谁能帮我把正确的语句写在exec()里吗?谢谢~各位了~感激涕零~
关注,确实会遇到这样问题!
声明一个变量,declare @strSql as varchar(500)
把你的查询语句赋值给它,然后执行就可以了吧
你可以在查询分析器中打印出来看看结果~
我没测试过
我试了一下,可是好像还是有这个问题啊~是不是还是用exec()执行啊?