利用Update()方法,批量将DataTable写入ACCESS!

爱妃大大大 2013-09-11 06:15:24
大家好,
上网查了很多信息,大家要么是一条一条insert,要么是用update()方法。
由于数据量较大,所以我想用update()方法批量导入。

已经在ACCESS中建立好了与DataTable结构一样的表。

OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\练习.accdb'");
conn1.Open();
DataTable DT1 = new DataTable();
OleDbDataAdapter adapater1 = new OleDbDataAdapter("select * from [ACCESS中的表]", conn1);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapater1);
adapater1.Fill(DT1);
DT1 = DS.Tables[0].Copy();//DS.Tables[0]就是已经存在的内存表
adapater1.Update(DT1);

执行后就会报错“违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。”

我已经建立了主键,并且内存表里没有空值。

在此我想请教大家,有没有像往SQL里面批量导入时的BCP一样的方法,不会有太多限制,只专注于批量导入的方法。

谢谢大家。
...全文
730 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxxloveszj 2015-03-20
  • 打赏
  • 举报
回复
请问你解决了吗,为什么我使用update,没有报错,但是数据没有更新到access内
游戏人间 2013-09-12
  • 打赏
  • 举报
回复
如果只是插入的话(不检测主键重复), 可以用楼主的方法实现. 做法: 表不要建主键,不使用 OleDbCommandBuilder 自动生成sql,自己写. 然后用适配器Update即可.
Andy__Huang 2013-09-11
  • 打赏
  • 举报
回复
以前也用过Access记录是没有批量插入的,只能用循环插入. 比量导入看你的数据源是什么?sql server可以直接用导入导出工具批量导入

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧