C# 将表添加到数据集
可能重复:C# 将表添加到数据集,c#,C#,可能重复: 我有两个孩子。。我需要检查数据集中的一个值,如果满足条件,则将该值分配给另一个数据集中。我可以获取值,但如果在检查datatable dtreturn后将其分配给数据集,则不会将其设置为dsreturn。 下面是我的代码: DataSet ds = datasetValue(); DataSet dsReturn = new DataSet(); DataTable dtReturn = dsReturn.Tables.Add(); dtRe
我有两个孩子。。我需要检查数据集中的一个值,如果满足条件,则将该值分配给另一个数据集中。我可以获取值,但如果在检查datatable 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;
您正在使用
DataTable dtReturn = dsReturn.Tables.Add();
这将添加一个名为Table1或其他名称的DataTable
dsReturn.Tables["dtReturn"].ImportRow((row));
这里使用的名称实际上是DataTable的实例名称,而不是数据集中包含的名称。DataSet
dsReturn中不存在dtReturn这样的表
也许添加这个应该可以实现这个技巧dtReturn.TableName=“dtReturn”代码>您可以使用不同的方法:
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
编辑:
我修改了表名,如dsReturn.Tables[“Table1”].ImportRow((行));但是仍然得到相同的错误您是否通过设置TableName
来检查它不一定总是Table1,还要检查调试期间得到的结果dsReturn。Tables[“Table1”]
应该为空我检查了它。。在调试过程中是表1。这样,您就可以知道哪个值为null,我认为这应该是有效的。。设置表名有什么区别吗?没有。我已经设置了表名,但仍然…为什么不使用这个:DataRow newrowdata?
DataRow newrowdata = dtReturn.NewRow();
dsReturn.Tables["dtReturn"].ImportRow((newrowdata));