如何使用 DataAdapter.Update 方法同时更新 Access 数据库和 .NET DataSet 对象?

Posted

技术标签:

【中文标题】如何使用 DataAdapter.Update 方法同时更新 Access 数据库和 .NET DataSet 对象?【英文标题】:How to simultaneously update an Access database and a .NET DataSet object using the DataAdapter.Update method? 【发布时间】:2009-07-22 08:10:47 【问题描述】:

我已将一个 Access 数据库导入我的 Visual Studio 2008 项目(用 C# 编写),它从数据源读取表字段,但在更新时它只在 DataSet 对象中执行,而不是在实际数据库中。

这是我的代码:

 System.Data.OleDb.OleDbDataAdapter da;

 private void button2_Click(object sender, EventArgs e)
 
     var cb = new System.Data.OleDb.OleDbCommandBuilder(da);

     DataRow dRow = ds1.Tables["ever"].NewRow();

     dRow[1] = textBox1.Text;
     dRow[2] = textBox1.Text;
     dRow[3] = textBox1.Text;

     ds1.Tables["ever"].Rows.Add(dRow);

     da.Update(ds1, "ever");

     MessageBox.Show("Record added");
 

但是,显示以下异常:

"ConnectionString 属性没有 已初始化。”

在这一行:

da.Update(ds1, "ever");

【问题讨论】:

您必须向我们展示“da”是如何声明和初始化的。 System.Data.OleDb.OleDbDataAdapter da; 你在哪里实例化 da? 实例化是:da = new OleDbDataAdapter (..); 【参考方案1】:

Update 方法使用您在 UpdateCommand 属性中指定的命令。我怀疑这是你问题的一部分。每个命令(SELECT、INSERT、UPDATE、DELETE)的连接字符串可能都有类似的属性。

【讨论】:

以上是关于如何使用 DataAdapter.Update 方法同时更新 Access 数据库和 .NET DataSet 对象?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataAdapter.Update() 不更新数据库

使用 C# dataAdapter.Fill() 和 dataAdapter.Update() 将表的数据从一个数据库传输到另一个数据库的同一个表

在 DataAdapter.Update/Refresh 后未设置 DataTable 标识列,使用“而不是”触发器(SqlServer 2005)

为啥 DataAdapter.Update 啥也不更新?

为啥当我调用 DataAdapter.Update() 时,此 C# 代码会生成语法错误?

DataAdapter Update 方法批量更新多行