我有多个相同的 Access 2007 数据库(accdb 文件),我想使用 c# 代码使用 windows 窗体将它们合并为一个,但我不知道该怎么做,因为我是 c# 数据库的初学者,但我想要将所有数据合二为一,因为所有数据表只有一两行,因为我使用访问表格来处理来自我大学不同学生的问卷,他们给我发了答案,所以我必须一一打开所有文件,我想增加一个Windows 窗体应用程序,因为我将从答案中获取一些结果。
问问题
1714 次
1 回答
1
我建议您采取以下步骤:
- 创建一个带有单个表的数据库来保存最终结果。该表应具有与单个文件完全相同的结构,但具有主键字段 - 数据库文件的路径或每行的其他一些唯一值(可以使用自动编号字段生成)。在任何情况下,您都可能需要一个额外的数据库路径列,特别是如果您需要防止多次重新读取同一个数据库文件。
- 使用 OleDb 提供程序打开到最终数据库的 ADO.NET 连接。这需要 a) 创建一个
OleDbConnection
对象,b) 创建一个OleDbCommand
在连接上运行的对象,c) 将CommandText
命令对象设置为 SQL 语句,以及 d) 执行命令。 您的 SQL 语句可能如下所示:
INSERT INTO desttable (pkfield, field1, field2 ...) SELECT field1, field2 FROM sourcetable
sourcetable
也可以是不同数据库中的表,如下所示:INSERT INTO desttable (pkfield, field1, field2 ...) SELECT field1, field2 FROM sourcetable IN path\to\mdb
因此,对于每条路径,您都可以通过每次替换适当的路径来构建 SQL 语句。
- 如果要遍历特定文件夹中的所有 mdb 文件,可以在命名空间
EnumerateFiles
中使用类的方法。或者,您可以在命名空间中打开一个对话框。Directory
System.IO
OpenFileDialog
Windows.Forms
- 一旦你弄清楚你想看到什么样的 UI,绑定到这个数据应该是微不足道的。
于 2013-03-18T23:33:27.007 回答