string strsql = string.Format("select top{0} * from News where id not in(select top {1} id from News where {2} order by id desc) and ({2}) order by id desc", PageSize, PageSize * (PageIndex - 1), strWhere);
SqlConnection conn = new SqlConnection("Data source=127.0.0.1;initial catalog=class1;user id=sa;password= ");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "news");.net报错说在关键字from 和order 附近有错误!
SqlConnection conn = new SqlConnection("Data source=127.0.0.1;initial catalog=class1;user id=sa;password= ");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "news");.net报错说在关键字from 和order 附近有错误!
看看strsql 的值...
string strsql = string.Format("select top{0} * from News where (1 = 1) and id not in(select top {1} id from News where (1 = 1) {2} order by id desc) {2} order by id desc", PageSize, PageSize * (PageIndex - 1), strWhere);这样 strWhere = "" 时 sql 仍可执行,但传筛选条件必需以 "and (field1 = 'xxx') and (field2 = 'xxx')" 这样的格式...虽不完美但还堪用!
查看strsql的值 然后在数据库里面改好!
其次,你应该把你传完参数后生成的语句,发出来,而不是代买,(print总会吧)
最后,只有当你把生成代码发出来,这里的估计用不到1分钟就可以找到原因
应该在TOP后面加空格 select top {0} * from
你看下下面这两句SQL
select top1 * from sysobjects--报错,而且也是和你图片一样,提示from附近错
select top 1 * from sysobjects
鼠标指向变量:strsql,然后它会浮出该变量的值,浮出后,鼠标稍往下移至该浮出方案,右键:复制值,然后把复制到的SQL语句,拿到数据库中执行一下(其实自己看看就是了),就知道错在哪里了。
那就把sql语句放到查询分析器里面看下。