主要是想实现通过数据集批量自动更新或者删除数据.
关于批量删除或更新的实现以及问题下面提到的关键代码部分就是这里
使用for遍历删除时可以的,但是使用foreach遍历删除时
要使用dt.AcceptChanges();
改变行的状态置为Unchanged
但是如果这个表有主键的情况下就会报错
"违反并发性 deletecommand影响了预期1条记录中的0条"问题为何for遍历删除无问题呢?
  //删除DataTable的某一行             
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dt.Rows[i].Delete();
        }        //如果用foreach删除需要改变行的状态置为Unchanged,否则这里会报错
        //dt.AcceptChanges();
        //foreach (DataRow subdr in dt.Rows)
        //{
        //    subdr.Delete();
        //}
下面是完全代码 public static void ADOUpdate()
{
        SqlExecutor sqlExecutor = new SqlExecutor();
        //获取链接
        sqlExecutor.Connect();
        SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM temp", sqlExecutor.m_Connection);
     
        SqlCommandBuilder Builder = new SqlCommandBuilder(sda);
        //使用DataAdapter讲查询到的数据表填充到DataSet中,命名为"A"
        DataSet ds = new DataSet();
        sda.Fill(ds, "A");        //以下更改DataTabe中的数据
        DataTable dt = ds.Tables["A"];
        //编辑DataTable的某一行
        DataRow dr = ds.Tables[0].Rows[0];
        dr.BeginEdit();
        dr["b"] = "编辑b";
        dr["c"] = "编辑c";
        dr.EndEdit();
        
        //为DataTable增加一行
        DataRow dr2 = dt.NewRow();
        dr2["a"] = "128883";
        dr2["b"] = "新加1";
        dr2["c"] = "新加2";
        dt.Rows.Add(dr2);        //删除DataTable的某一行             
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dt.Rows[i].Delete();
        }        //如果用foreach删除需要改变行的状态置为Unchanged,否则这里会报错
        //dt.AcceptChanges();
        //foreach (DataRow subdr in dt.Rows)
        //{
        //    subdr.Delete();
        //}
       
        //释放所有资源
        sda.Update(ds, "A");
        Builder.Dispose();
        ds.Dispose();
        sda.Dispose();
                        }