保存具有多个表的数据集

Posted

技术标签:

【中文标题】保存具有多个表的数据集【英文标题】:Saving a dataset with multiple tables 【发布时间】:2014-11-14 21:48:57 【问题描述】:

对于我正在进行的项目,我使用从服务器下载的 Access 数据库来存储数据。下载文件后,我打开数据库并将其复制到数据集中,以便更轻松地编辑数据。

我现在遇到的问题是我需要将数据集保存回访问数据库,但是在程序执行期间我也向数据集添加了新列,那么有没有办法可以更新正在访问的访问数据库与新数据和列一起下载后存储在 E:\ 驱动器上,或者我必须从头开始创建一个新数据库。

我用来加载和复制数据集的代码

private void accessConnect()
    
        //Assign values to access database variables 
        Connection = new OleDbConnection();
        command = new OleDbCommand();
        adapter = new OleDbDataAdapter();
        databaseDataSet = new DataSet();

        //Assign location of database to connection variable 
        connection.ConnectionString =
            @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\EAttendance.accdb;" +
            "Persist Security Info=False";

        //Establish connection with database
        command.Connection = connection;

        //Copy all tables into a c# dataset 
        try
        
            //Select the user table in the database
            command.CommandText = "SELECT * FROM users";
            adapter.SelectCommand = command;

            //Copy table into dataset 
            adapter.Fill(databaseDataSet,"users");

            //Select the students table in the database
            command.CommandText = "SELECT * FROM students";
            adapter.SelectCommand = command;

            //copy the students database into the dataset 
            adapter.Fill(databaseDataSet, "students");

        

        //catch exception and display error if application fails to read database 
        catch (OleDbException)
        
            //Display error in form title bar
            this.Text = "Error #102 : Database Read Error";

            // Set connection value to false
            connectionBoolean = false; 

        



    

【问题讨论】:

如果您将新列添加到数据集的表中,那么您需要在 Access 文件中重新创建这些列。保存数据集不会在 Access 文件上创建新列。有一些命令允许更改现有模式。你可以找到reference here 【参考方案1】:

你错过的是 SQLDataReader

public SQLDataReader someReader

 get return this.Reader("students");

【讨论】:

以上是关于保存具有多个表的数据集的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Fromsql() 处理 Dotnet 核心中具有多个表的数据集

如何管理跨多个表的大型数据集? UNION 与大表?

如何使用automapper映射与多个表的数据集

如何用多个表填充数据集?

如何用多个表填充数据集?

为啥 PL/SQL Bulk DML 对具有父子约束表的大型数据集运行缓慢?