-2

我有多个相同的 Access 2007 数据库(accdb 文件),我想使用 c# 代码使用 windows 窗体将它们合并为一个,但我不知道该怎么做,因为我是 c# 数据库的初学者,但我想要将所有数据合二为一,因为所有数据表只有一两行,因为我使用访问表格来处理来自我大学不同学生的问卷,他们给我发了答案,所以我必须一一打开所有文件,我想增加一个Windows 窗体应用程序,因为我将从答案中获取一些结果。

4

1 回答 1

1

我建议您采取以下步骤:

  1. 创建一个带有单个表的数据库来保存最终结果。该表应具有与单个文件完全相同的结构,但具有主键字段 - 数据库文件的路径或每行的其他一些唯一值(可以使用自动编号字段生成)。在任何情况下,您都可能需要一个额外的数据库路径列,特别是如果您需要防止多次重新读取同一个数据库文件。
  2. 使用 OleDb 提供程序打开到最终数据库的 ADO.NET 连接。这需要 a) 创建一个OleDbConnection对象,b) 创建一个OleDbCommand在连接上运行的对象,c) 将CommandText命令对象设置为 SQL 语句,以及 d) 执行命令。
  3. 您的 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 语句。

  4. 如果要遍历特定文件夹中的所有 mdb 文件,可以在命名空间EnumerateFiles中使用类的方法。或者,您可以在命名空间中打开一个对话框。DirectorySystem.IOOpenFileDialogWindows.Forms
  5. 一旦你弄清楚你想看到什么样的 UI,绑定到这个数据应该是微不足道的。
于 2013-03-18T23:33:27.007 回答