我正在 C# 中创建一个 GUI,并且我有以下代码行来获取从 lowerPageBound 到 upperPageBound 的元素。
command.CommandText = "Select Top " + rowsPerPage + " " +
CommaSeparatedListOfColumnNames + " From " + tableName +
" WHERE " + columnToSortBy + " NOT IN (SELECT TOP " +
lowerPageBoundary + " " + columnToSortBy + " From " +
tableName + " Order By " + columnToSortBy +
") Order By " + columnToSortBy;
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
生成的 SQL 语句在访问数据库上使用时给我一个错误(adapter.Fill(table) 被执行),但在 sql 数据库上工作正常。
下面是生成的 SQL:
Select Top 25 [ID], [Business Process], [Tier Level], [Application], [CI ID], [Server], [Server Function], [Data Center], [HA], [DR Equip], [Procedure], [Procedure Tested], [Type], [Outcome], [Overall Status] From Data WHERE ID NOT IN (SELECT TOP 0 ID FROM Data ORDER BY ID) ORDER BY ID;
我收到的错误是:
Syntax error in query expression 'ID NOT IN (SELECT TOP 0 ID FROM Data ORDER BY ID)'.
我试图解决这个问题几个小时,但我没有运气。为什么相同的语句在访问数据库上不起作用是没有意义的。任何帮助表示赞赏!