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的数目是没有变化的。这个小细节需要注意些。