方案一:
- 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对象载入数据。