DataTable的AcceptChange方法的影响

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

你可能感兴趣的:(Datatable)