帮我看看这个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' 附近有语法错误。

请各位大虾帮忙看看~感谢
...全文
765 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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型吗?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧