ASP.NET把数据查询出来保存在了一个datatable里面了,之后我想把这个datatable的数据导入到access数据库

access数据库里面有一张表跟datatable的表结构一模一样了,请问怎么用代码将datatable导入access呢
我要的是一次性将表数据导入access,不是一行一行的插入

insert into A select id,name From B
A表 表示access数据库里面有一张表

B表 表示是数据查询出来追问

B表可以是datatable?

追答

上面的SQL语句A表和B表的数据必须要一个数据库中,所以根据你的描述你的数据在两个不同的数据库中,所以只能先使用事务+for循环拼接SQL语句,然后一次执行拼接完成的SQL语句了。

追问

怎么写这个事务呢,怎么拼接语句呢..可以给个例子么

追答StringBuilder Buidler = new StringBuilder();
Buidler.Append("begin tran" + Environment.NewLine);
Buidler.Append(Environment.NewLine);
foreach (DataRow dr in dt.Rows)
{
     Buidler.Append("INSERT INTO A(id,name) VALUES('" + dr[0] + "','" + dr[1].ToString() + "');");
 }
 Buidler.Append(Environment.NewLine);
 Buidler.Append("commit tran");

然后,把Buidler.ToString(),当成一个SQL语句执行一下,就可以了。

追问

IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。】  为什么报这个错误呢

追答

打断点根进看一下,到底什么地方报错啊。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
插入不就行了, Insert Into table values ('值1','值2') 会不?
第2个回答  2014-03-28
Insert into [表B] Select * from [表A] Where " 插入条件"

我上面的语句就是一次性向表B插入表A中所有的记录,不是一条一条加。如果是无条件的,就把where......删除就行了。
相似回答