可能重复:
Datatable add to dataset
我有数据集ds ..我需要检查数据集中的一个值,并在满足条件时将值分配给另一个数据集。我可以获取值但是如果在检查数据表之后分配给数据集,则dtreturn不会设置为dsreturn。 下面是我的代码:
DataSet ds = datasetValue();
DataSet dsReturn = new DataSet();
DataTable dtReturn = dsReturn.Tables.Add();
dtReturn.Columns.Add("id");
dtReturn.Columns.Add("description");
dtReturn.Columns.Add("status");
foreach (DataRow row in ds.Tables[0].Rows)
{
if(Convert.ToInt32(row[1]) == status )
{
DataRow newrowdata = dtReturn.NewRow();
// gives object ref not set to an instance of object...
dsReturn.Tables["dtReturn"].ImportRow((row));
//DataRow drReturn = dtReturn.NewRow();
//dsReturn.Tables["dtReturn"].Rows.Add(row);
}
}
return dsReturn;
答案 0 :(得分:0)
您正在使用
DataTable dtReturn = dsReturn.Tables.Add();
哪个会添加DataTable
,其名称类似于Table1或其他内容
dsReturn.Tables["dtReturn"].ImportRow((row));
这里使用的名称实际上是DataTable的实例名称,而不是DataSet
中包含的名称。 DataSet
dsReturn
也许添加这个应该可以做到dtReturn.TableName = "dtReturn";
答案 1 :(得分:0)
你可以做到与众不同:
DataSet dsReturn = new DataSet();
DataTable dtReturn = new DataTable("dtReturn");
dtReturn.Columns.Add("id");
dtReturn.Columns.Add("description");
dtReturn.Columns.Add("status");
dsReturn.Tables.Add(dtReturn);
你怎么处理newrowdata?
编辑:
DataRow newrowdata = dtReturn.NewRow();
dsReturn.Tables["dtReturn"].ImportRow((newrowdata));