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

转载于:https://www.cnblogs.com/herbert/archive/2010/08/30/1812812.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值