c# - SQL 查询的取值不超过 2100

标签 c# asp.net sql gridview

SELECT MachineID, MachineName, count(ID) as Total, sum(Size) as TotalSize 
  FROM Files 
  join Machines on Files.MachineID = Machines.MachineID 
 Where Files.MachineID In(sql.Append(string.Format("@MachineId{0}", i));
 group by Files.MachineID,MachineName

现在当 machinId 计数小于 2100 时执行查询,如果机器超过 2100 则抛出错误 错误:

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100.

我如何增加限制或只是避免出现此错误.. 并将值放入 gridview 谢谢..

最佳答案

你没有在你的例子中说你的“sql”变量来自哪里,但是如果你手动构建你的“IN”列表(通过在你的 IN 语句中构建一个带有逗号分隔值的字符串),那么所有流行的关系数据库都有您可以在静态 IN 子句中指定的值的数量限制。您使用的数据库有 2100 个限制。我相信 Oracle 是 1000

关于c# - SQL 查询的取值不超过 2100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049036/

相关文章:

c# - 对 EntityFramework 和 "normal"SQL 调用使用相同的 SqlConnection

c# - 调整图像大小而不损失任何质量

.net - 将保存在磁盘上的eml文件加载到.net Mail.Message对象中

mysql - SQL根据条件合并两个表

sql - 为什么不能对文本使用 COUNT() 方法?

c# - 如何在执行之间的 Quartz.net 作业触发器中保留数据?

c# - 防止 Entity Framework 为导航属性插入值

c# - GridView 中的超链接列

c# - 当前上下文中不存在名称 'HttpUtility' (winform)

sql - 如何使用特定值更新 varbinary 字段?