文章内容

2017/6/4 15:50:15,作 者: 黄兵

'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

最近在使用asp.net core的时候,采用take().skip()分页的时候报如下错误:

SqlException: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

这个主要是在sql server 2008中,不支持FETCH和NEXT语句(sql server 2012才支持)。

之后在网上参考了一下其他的文章,最终解决了这个问题,记录一下,方便后来人。

解决方法:

修改“StartUp.cs”文件,具体代码截图如下:

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();

var connection = @"Data Source=tcp:111.111.111.111,1044;
Initial Catalog=xxx;Persist Security Info=True;User ID=xxxx;Password=xxxxx";
services.AddDbContext<NoteContext>(options => options.UseSqlServer(connection,b=>b.UseRowNumberForPaging()));

services.AddScoped<Repository.INoteRepository,Repository.NoteRepository>();
services.AddScoped<Repository.INoteTypeRepository, Repository.NoteTypeRepository>();
}

无视上面的数据库链接代码,肯定不是真的呐^*^。

参考网址:

1、'OFFSET' 附近有语法错误。\r\n在 FETCH 语句中选项 NEXT 的用法无效。\r\n关键字 'AS' 附近有语法错误。

2、在SQL Server 2008 中无法skip()和Take()

分享到:

发表评论

评论列表