access中怎么复制表的所有数据?

jshzp 2012-05-28 06:19:39
两个access数据库a.mdb和b.mdb,其中有一张表mytable的结构完全相同,我想用代码把数据库a.mdb中mytable表的所有数据全部复制到另一个数据库b.mdb的mytable中,我现在的办法是读出来后,一条一条的插入(INSERT),但是这样似乎效率太低。有没有较为简洁的SQL语句,完成这些操作?
我想用这样的SQL语句:"INSERT INTO [;database=a.mdb].mytable SELECT * FROM [;database=b.mdb].mytable"
但是怎么执行这条SQL语句呢?我用的是ADO的方法,即怎么建立这两个数据库的OleDbConnection连接呢?
数据库菜鸟,望指教,谢谢!
...全文
494 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
如果只是空表,你直接File.Copy("A.mdb","B.mdb")就可以了吧
[/Quote]
两个数据库中,各有十多张表,其中有一两张表的结构不同,所以不能直接Copy。
孟子E章 2012-05-28
  • 打赏
  • 举报
回复
如果只是空表,你直接File.Copy("A.mdb","B.mdb")就可以了吧
jshzp 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
可以使用这样的方法,把这个Datatble读取出来,并写入另外的表
http://dotnet.aspx.cc/file/Insert-DataSet-Into-Access.aspx
[/Quote]
谢谢!刚才拜读过了。
有个疑问:
 OleDbParameter UserName = new OleDbParameter("@UserName", OleDbType.LongVarWChar, 1073741823, "MyUserName"); //这里的字段名称与DataSet里面的对应。
adapter.InsertCommand.Parameters.Add(UserName);
OleDbParameter Password = new OleDbParameter("@Password", OleDbType.LongVarWChar, 1073741823, "MyPassword");
adapter.InsertCommand.Parameters.Add(Password);
OleDbParameter Title = new OleDbParameter("@Title", OleDbType.LongVarWChar, 255, "MyTitle");
adapter.InsertCommand.Parameters.Add(Title);

从这里看,需要针对每张表写代码去逐个Add字段。假如待写入的表结构已经建立好了,只是一张没有记录的空表,这种情况能否只是复制记录而省略建表(adapter.InsertCommand.Parameters.Add(field))的步骤呢?如果能行,我就不用为那十多张表逐个添加字段了!
望继续指教,谢谢!
孟子E章 2012-05-28
  • 打赏
  • 举报
回复
可以使用这样的方法,把这个Datatble读取出来,并写入另外的表
http://dotnet.aspx.cc/file/Insert-DataSet-Into-Access.aspx

111,126

社区成员

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

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

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