c# - 如何将限制定义为参数?

标签 c# tsql odbc

鉴于 conn 是一个 OdbcConnection 对象并且 count 是一个 int,我将如何使用 count 作为参数我的查询?

...
var query = conn.CreateCommand();
query.CommandText = "select top ? * from players order by Points desc";
query.Parameters.Add("top", OdbcType.Int).Value = count;

var reader = query.ExecuteReader();
while (reader.Read())
{
    ...
}
...

这样我得到一个语法错误 ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '@P1'.

如果我尝试的方法不可行,我该如何改用正确的方法?

最佳答案

您还可以使用 SET ROWCOUNT,优点是您可以使用整数作为参数并避免动态查询。

SET ROWCOUNT @top;

select * from table;

SET ROWCOUNT 0;

阅读documentation

关于c# - 如何将限制定义为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255115/

相关文章:

javascript - 如何读取 Node 中 MDB 文件中 double 类型的列?

c# - 如何在 GeckoFX 29 中处理下载

c# - 如何重新采样 wav 文件

sql - CASCADE 多对多自引用表中的删除

mysql - SQL查询中的Excel日期参数

postgresql - 使用 palloc 分配

c# - UserControl 属性绑定(bind)问题

c# - 托管 ODP.Net - SELECT 中的参数导致只读列

sql - 获取 2 个不同字符串之间的字符串的一部分

sql - 连接表并选择给定 id 仅存在一个值的行