关于ds添加datarow

有一个dataset DS。
如果我想将DS中的某一行复制,得到新的一行,添加到DS中。

可能就会想到:
DS.Tables[0].Rows.Add(DS.Tables[0].Rows[i])
但是这样程序会报错,提示该dataset中已经包含这一datarow。

提供以下属性:
Ds.Tables[0].Rows[0].ItemArray
通过一个数组来获取或设置此行的所有值。

这样实现上边问题,就可以:
DS.Tabels[0].Rows.Add(DS.Table[0].Rows[i].ItemArray);
这样即可实现将DS中的第一个dataTable的第i行复制得到新的一行,并将其添加到DS的第一个dataTable中。

System.Data.DataSet dsTrue = ds.Clone();
System.Data.DataSet dsFalse = ds.Clone();
DataRow dr = ds.Tables[0].NewRow();

for (int i = 0; i < iCount; i++)
{
    if (ds.Tables[0].Rows[i]["IsChange"].Equals("是"))
    {
        dsTrue.Tables[0].Rows.Add(ds.Tables[0].Rows[i].ItemArray);
    }
    else if (ds.Tables[0].Rows[i]["IsChange"].Equals("否"))
    {
        dsFalse.Tables[0].Rows.Add(ds.Tables[0].Rows[i].ItemArray);
    }
}

dsMerge.Merge(dsTrue);
dsMerge.Merge(dsFalse);

 

你可能感兴趣的