关于C#使用ODBC的连接方式,对数据库批量插入数据
已知的是使用OdbcDataAdapter.Update()可以进行批量的更新,但是效率非常低。
除了这个方法还有什么其他的方法吗?
给个OdcbCommand.ExecuteNonQuery()的实例也行
我尝试过这种方法,但是一直卡在了无法将DataTable整列的数据设置为数据源。可以装进了OdbcParameter.Value里,但是执行ExecuteNonQuery()时就会报错。
Paramter.Value = dt.AsEnumerable().Select(d => d.Field<string>(SourceColumnCol[i])).ToList();
OdbcDataAdapter.Update()效率低的原因:
因为OdbcDataAdapter.UpdateBatchSize默认设置为1
1.每个批处理要处理的行数。值为效果0批大小没有限制。如果是1相当于禁用了批量更新,所以效率非常低。
2.System.Data.IDbCommand.UpdatedRowSource 属性设置为 None 或 OutputParameters。否则,将引发异常。(已设置)
我尝试着设置为0,但是一直报异常: 异常:System.NotSupportedException 不支持所指定的方法 。
有查到回答是:ODBC和OLEDB都是不支持设置updatebatchsize。
所以我已经放弃了使用OdbcDataAdapter.Update()。