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' 附近有语法错误。请各位大虾帮忙看看~感谢

解决方案 »

  1.   

    sqlserver数据库?
    PageSize和PageIndex是int型吗?
      

  2.   

    top 关键字后面,from关键字后面都不允许出现变量,必须写死,你却通过变量动态传递,自然会报错。
      

  3.   

    拼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);
     
      

  4.   

    sql语句不支持这种语法,你要在程序中讲@pagesize,@pageindex替换成相应数字
      

  5.   

    sql不支持这种写法,还是拼接字符串吧
      

  6.   

    该学习下动态sqlhttp://blog.csdn.net/fredrickhu/article/details/4574840
      

  7.   

    string sql="select top"+PageSize+"* from Album where Id not in (select top "+PageIndex+" Id from name)";
    其中 我把name当成已存在的一个表
    像这样有变量的 可以通过++连接