方案一:
DataSet dsTemp = new DataSet(); dsTemp = dsDt.Clone(); DataRow[] drs = dsDt.Tables[0].Select("CHECKED='1'"); foreach (DataRow dr in drs) { dsTemp.Tables[0].NewRow(); dsTemp.Tables[0].Rows.Add(dr.ItemArray); } dsDt.AcceptChanges();
小注:
1、AcceptChanges和RejectChanges:接受或放弃DataSet中所有挂起更改。调用AcceptChanges时,RowState属性值为Added或Modified的所有行的RowState属性都将被设置为UnChanged.任何标记为Deleted的DataRow对象将从DataSet中删除。调用RejectChanges时,任何标记为Added的DataRow对象将会被从DataSet中删除,其他修改过的DatRow对象将返回前一状态。
2、ItemArray:获取或设置行中所有列的值。
3、Clone和Copy:使用Copy方法会创建与原DataSet具有相同结构和相同行的新DataSet.使用Clone方法会创建具有相同结构的新DataSet,但不包含任何行。
4、NewRow() 创建与该表具有相同架构的新DataRow。
方案二:
DataSet dsTemp = new DataSet(); dsTemp.Merge(dsDt.Tables[0].Select("CHECKED='1'"));
小注:
Merge:从另一个DataSet、DataTable或现有DataSet中的一组DataRow对象载入数据。