帮我看看这个sql语句哪里有错误。谢谢~

wuzida110 2013-02-07 01:27:52
string sql =
"select top @PageSize * from Album where Id not in " + "(" + "select top @PageIndex Id from @name" + ")" + " ";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add("@PageSize", PageSize);
cmd.Parameters.Add("@PageIndex", PageIndex);
cmd.Parameters.Add("@name", typeof(name).Name);


他报这样的错:
'@PageSize' 附近有语法错误。
'@PageIndex' 附近有语法错误。

请各位大虾帮忙看看~感谢
...全文
737 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhangfk 2013-02-09
用开发环境跟踪一下。
  • 打赏
  • 举报
回复
SliPe 2013-02-09
引用 楼主 wuzida110 的回复:
string sql = "select top @PageSize * from Album where Id not in " + "(" + "select top @PageIndex Id from @name" + ")" + " "; SqlCommand cmd = new SqlCommand(sql, con); ……
string sql="select top"+PageSize+"* from Album where Id not in (select top "+PageIndex+" Id from name)"; 其中 我把name当成已存在的一个表 像这样有变量的 可以通过++连接
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
sql不支持这种写法,还是拼接字符串吧
  • 打赏
  • 举报
回复
MaTaijin 2013-02-07
sql语句不支持这种语法,你要在程序中讲@pagesize,@pageindex替换成相应数字
  • 打赏
  • 举报
回复
gxingmin 2013-02-07
拼sql吧,不要用传参方式
string sql = 
 "select top " + PageSize + " from Album where Id not in " + "(" + "select top " + PageIndex + " Id from @name" + ")" + " ";
                 SqlCommand cmd = new SqlCommand(sql, con);
                 //cmd.Parameters.Add("@PageSize", PageSize);
                 //cmd.Parameters.Add("@PageIndex", PageIndex);
                 cmd.Parameters.Add("@name", typeof(name).Name);
  • 打赏
  • 举报
回复
wuzida110 2013-02-07
引用 1 楼 gxingmin 的回复:
sqlserver数据库? PageSize和PageIndex是int型吗?
是啊?怎么解决啊?
  • 打赏
  • 举报
回复
qldsrx 2013-02-07
top 关键字后面,from关键字后面都不允许出现变量,必须写死,你却通过变量动态传递,自然会报错。
  • 打赏
  • 举报
回复
gxingmin 2013-02-07
sqlserver数据库? PageSize和PageIndex是int型吗?
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2013-02-07 01:27
社区公告

让您成为最强悍的C#开发者