oracle odp arraybindcount 极限,c# - ODBC批量插入C# - 堆栈内存溢出

我试图弄清楚如何像以前使用ODP.Net( OracleCommand , OracleConnection )和参数化查询一样使用ODBC( System.Data.Odbc )批量插入多个记录。

使用odp.net我在进行一些研究之前就完成了工作,发现完美的东西是:

string query = @"insert into Customer ( surname, firstName, emailAddress) values

(:surname, :firstName, :emailAddress)";

oracleConnection.Open();

using (var command = oracleConnection.CreateCommand())

{

command.CommandText = query;

command.CommandType = CommandType.Text;

command.BindByName = true;

// In order to use ArrayBinding, the ArrayBindCount property

// of OracleCommand object must be set to the number of records to be inserted

command.ArrayBindCount = bulkData.Count;

command.Parameters.Add(":surname", OracleDbType.Varchar2, bulkData.Select(c => c.Surname).ToArray(), ParameterDirection.Input);

command.Parameters.Add(":firstName", OracleDbType.Varchar2, bulkData.Select(c => c.FirstName).ToArray(), ParameterDirection.Input);

command.Parameters.Add(":emailAddress", OracleDbType.Varchar2, bulkData.Select(c => c.EmailAddress).ToArray(), ParameterDirection.Input);

int result = command.ExecuteNonQuery();

if (result == bulkData.Count)

returnValue = true;

}

}

我试图对odbc使用相同的逻辑,并通过command.Parameters.AddWithValue , command.Parameters.Add和command.Parameters.AddRange传递数据,但是在理解如何管理它方面仍然存在问题。 有没有人尝试过?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值