c# - 具有超过 2000 个参数的 ADO.NET 批量插入

标签 c# .net asp.net ado.net

我正在使用企业库,但想法是一样的。我有一个 SqlStringCommand 和 sql

是用StringBuilder构造的

"insert into table (column1, column2, column3) values (@param1-X, @param2-X, @parm3-X)"+" " 

其中“X”表示一个大约 700 行的“for 循环”

StringBuilder sb = new StringBuilder();
for(int i=0; i<700; i++)
{
   sb.Append("insert into table (column1, column2, column3) values (@param1-"+i+", @param2-"+i, +",@parm3-"+i+") " );
}

然后构造一个命令对象,将所有带值的参数注入(inject)其中。

基本上,700 行和 3 个参数,对于这个“一个 sql”语句,我最终得到了 2100 个参数。

正常运行了几天,突然报错

===============================================================

A severe error occurred on the current command. The results, if any, should be discarded.

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) 
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) 
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 
at System.Data.SqlClient.SqlCommand.InternalExecuteNon

非常感谢任何指点。

最佳答案

关于c# - 具有超过 2000 个参数的 ADO.NET 批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479054/

相关文章:

c# - 使用 C# 类库作为 COM+ 服务器应用程序

c# - 在没有 NETCFSvcUtil 生成代理的情况下与 WCF 的 Compact Framework 通信

c# - Define() (PHP) 替代 ASP.NET (C#)

c# - mvc 和 EF 中的多对多关系

c# - 我需要一个辅助方法来比较一个 char 枚举和一个 char 盒装到一个对象

c# - 使用 C# 在 Windows 窗体中查看 PDF

c# - C# 中的编程构建事件?

javascript - 在包含的文件中发布后重新选择复选框

asp.net - 为按钮设置垂直对齐

c# - 在运行时动态创建具有与其所有者相同类型的字段的类型