0

我的 WPF 项目中有以下代码:

string query2 = "SELECT * FROM Anamnese_VMBO";
            string connectionstring = <Removed string for privacy >
            IDbConnection con1 = new OleDbConnection(connectionstring);
            con1.Open();
            OleDbCommand dbCommand = new OleDbCommand(query2, (OleDbConnection)con1);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);
            OleDbCommandBuilder cb = new OleDbCommandBuilder(dataAdapter);
            cb.GetDeleteCommand(true);
            cb.GetInsertCommand(true);
            cb.GetUpdateCommand(true);
           

            dataAdapter.Fill(this.dt1);
            dt1.Merge(dt);
            dt1.GetChanges();
            dataAdapter.Update(dt1);
            dt1.AcceptChanges();        
            Grid.ItemsSource = dt1.DefaultView;
            con1.Close();

正如您在代码中看到的,我将 2 个数据表合并在一起,然后执行更新命令生成器。当我运行代码时,我可以看到我的 2 个数据表具有我需要的确切值,但是当我检查我的数据库时,没有任何更新。

我测试的一些东西:

  • 当我尝试插入静态数据时,常规命令文本有效。我运行了一个测试,我手动给 OleDBCommand 一个插入语句,它工作。
  • 列名没有特殊字符或以任何方式无效。
  • 我数据库中的所有表都有主键。
  • 我合并的表具有完全相同的列名。
  • 我必须使用命令生成器,因为要手动编写的列太多。
4

0 回答 0