1、可以:
- 更新行row["Name"] = "lrj"、
- 删除行datatable.Rows.Remove()、
- 新增行datatable. NewRow()。
这一切都是修改的内存中的DataSet,没有修改数据库。
2、可以调用SqlDataAdapter的Update方法将对DataSet的修改提交到数据库,Update方法有很多重载方法,可以提交整个DataSet、DataTable或者若干DataRow。但是需要为SqlDataAdapter提供DeleteCommand、UpdateCommand、InsertCommand它才知道如何将对DataSet的修改提交到数据库,由于这几个Command要求的格式非常苛刻,因此开发人员自己写非常困难,可以用SqlCommandBuilder自动生成这几个Command,用法很简单:new SqlCommandBuilder(adapter)。查看生成的Command(没有直接赋值给SqlDataAdapter ,看SqlCommandBuilder的)。SqlCommandBuilder要求表必须有主键。
3、通过DataRow的RowState可以获得行的状态(删除、修改、新增等);调用DataSet的GetChanges()方法得到变化的结果集,降低传递的资源占用。