DataTable.AcceptChanges 方法
提交自上次調用 AcceptChanges 以來對該表進行的所有更改。
如果不允許該命令DataTable的資料修改是無效的。舉個簡單的樣本
private void button1_Click(object sender, EventArgs e) { string conn = "Data Source=(local);Initial Catalog=Test;Integrated Security = SSPI;"; using (SqlConnection connection = new SqlConnection(conn)) { connection.Open(); string select = "SELECT * FROM TestTable"; SqlDataAdapter da = new SqlDataAdapter(select, connection); DataSet ds = new DataSet(); da.Fill(ds); DataTable dataTable = ds.Tables[0]; // TestTable 裡面有9行資料 // dataTable的行數目為0-8 // MessageBox.Show(dataTable.Rows.Count.ToString()); // 刪除第8行 dataTable.Rows[8].Delete(); // 顯示在DataGridView控制項裡的行數目已經更新 // 第8行已經刪除 但是dataTable不運行AcceptChange,DataTable的行數依然不變為9 this.dataGridView1.DataSource = dataTable; //dataTable.AcceptChanges(); MessageBox.Show(dataTable.Rows.Count.ToString()); }
在這裡面,DataGridView可以顯示最新的修改過的DataTable的資料,但是如果不AcceptChange,你會發現DataTable的Row的數目是沒有變化的。這個小細節需要注意些。