C# 分析查询时出错。[令牌行编号=1,令牌行偏移量=39,令牌出错=(]
我在WinForms应用程序中工作。我的要求是按需从sql加载数据(即,当移动到某个页面时,为该页面加载100条记录)。因此我尝试在SqlCommand下面执行,但它在下面命令中的“ROW_NUMBER()”语法处引发异常C# 分析查询时出错。[令牌行编号=1,令牌行偏移量=39,令牌出错=(],c#,sql-server,winforms,sqlcedatareader,C#,Sql Server,Winforms,Sqlcedatareader,我在WinForms应用程序中工作。我的要求是按需从sql加载数据(即,当移动到某个页面时,为该页面加载100条记录)。因此我尝试在SqlCommand下面执行,但它在下面命令中的“ROW_NUMBER()”语法处引发异常 SELECT * FROM (SELECT * , ROW_NUMBER() (ORDER BY [ID]) AS RowNum FROM [tblVGTest] WHERE [ID]) AS Temp WHERE RowNum B
SELECT *
FROM (SELECT *
, ROW_NUMBER() (ORDER BY [ID]) AS RowNum
FROM [tblVGTest]
WHERE [ID]) AS Temp
WHERE RowNum BETWEEN 0 AND 100
请让我知道,是否有任何错误的指挥或提供任何建议,我的情况
谢谢您忘记了在
行号中使用OVER()
子句
尝试以下查询
SELECT * FROM (SELECT * , ROW_NUMBER() OVER (ORDER BY [ID]) AS RowNum
FROM [tblVGTest] ) AS Temp WHERE RowNum BETWEEN 0 AND 100
我已经从中删除了WHERE
子句,因为它没有任何标准。如果需要,您可以放置它。如果您使用SQL Server Compact 4.0,您可以使用OFFSET/fetch语法:
SELECT * FROM TransactionHistory
ORDER BY TransactionDate DESC
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY;
是mysql吗?看起来SQL Server(mssql)的查询完全错误。ORDER BY
子句总是在WHERE
子句之后。WHERE
在您的查询中没有任何条件。只有WHERE[ID]意味着什么
?您好@Chetan,谢谢您的建议。我已经按照您所说的做了尝试,但仍然得到了相同的异常。这种情况还有其他可能性吗?没有其他可能性。这是一个语法错误。我在本地数据库上运行了上述查询,只更改了表名,我得到了完美的输出。我在SQL Server数据库上运行了此查询。您使用了吗正在删除其他数据库?是否尝试在Sql Management Studio中运行查询。我建议从此处复制查询,粘贴到查询窗口并运行它。您好@Chetan,谢谢。我没有在Sql Management Studio中尝试过。我使用了(.sdf)文件,并通过SqlCeConnection和SqlCeAdapter.Ok读取其中的值。如果您使用的是SQL Server Compact Edition,则新闻是SQL Server Compact Edition中没有行号()。您需要使用SqlCeResultSet.Seek()
用于分页。您好@Chetan,谢谢您提供的信息。您是否提供使用SqlCeResultSet.Seek()从SDF文件中选择100条记录的论坛或文档。我已经搜索过了,但无法获得有关如何使用SqlCeResultSet.Seek()的确切详细信息