今天使用DataTable进行数据的增删改查,遇到几个问题和注意点,记下以备不时之需.

 

DataTable的自动更新有几个条件:

        1.必须有主键;主键设置方法为设置dt.PrimaryKey=  new DataColumn[] { m_RYDt.Columns["ID"] };    此  处自然可以设置多个主键了。

 

        2.由于判断是插入还是删除依靠的是行Rowstate的状态,所以要注意行状态的改变;为确保行状态初始化的时候正确,可以在DataTable构建完成之后,调用dt.AcceptChanges()方法;

 

一个注意点:

DataRow[] dr = m_RYUnionDt.Select("ID='" + id + "'");
if (dr != null && dr.Length > 0)
{
dr[0].Delete();//这个方法之后,此行的Rowstate会被改为Delete
//m_RYUnionDt.Rows.Remove(dr[0]);//这个方法不会修改此行的行状态
}

 

如果一行数据进行了编辑操作,也要把这一行的状态改为修改;

dr1[0].SetModified();