C#OleDB保存更改

时间:2016-10-14 06:30:28

标签: c# oledb dataadapter

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\"C:\\Users\\User\\Desktop\\New Microsoft Access Database.accdb\"");
                OleDbDataAdapter DataAdapter = new OleDbDataAdapter("SELECT *from pinakas", connection);

                DataTable pinakas_Table = new DataTable();
                DataAdapter.Fill(pinakas_Table);

                MessageBox.Show(pinakas_Table.Rows[1]["Name"].ToString());

好的,这一行显示我的第一行字段的名称“George” “名称”。

        pinakas_Table.Rows[1]["Name"] = "John";

现在这一行将字段“Name”设置为值“John”

        pinakas_Table.AcceptChanges();
        DataAdapter.Fill(pinakas_Table);
        MessageBox.Show(pinakas_Table.Rows[1]["Name"].ToString());

好了,现在我的应用程序显示名称“John”!这意味着DataTable“pinakas_Table”得到了改变。

        DataAdapter.Update(pinakas_Table);

但它从未保存到我的Access数据库。

1 个答案:

答案 0 :(得分:0)

Updating Data Sources with DataAdapters州......

  

AcceptChangesDataSetDataTable上拨打DataRow会导致Original的所有DataRow值被覆盖Current的{​​{1}}值。如果已修改将行标识为唯一的字段值,则在调用DataRow后,AcceptChanges值将不再与数据源中的值匹配。在调用Original的{​​{1}}方法期间,每行自动调用AcceptChanges

通过调用Update,您的修改行将被视为其数据与数据库保持不变,因此DataAdapter将看不到该行所需的任何操作。别打电话给AcceptChanges()。 <{3}}成功后会为您致电pinakas_Table.AcceptChanges();