将表添加到数据集

时间:2011-06-22 11:02:20

标签: c#

  

可能重复:
  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; 

2 个答案:

答案 0 :(得分:0)

您正在使用

DataTable dtReturn = dsReturn.Tables.Add();

哪个会添加DataTable,其名称类似于Table1或其他内容

dsReturn.Tables["dtReturn"].ImportRow((row));

这里使用的名称实际上是DataTable的实例名称,而不是DataSet中包含的名称。 DataSet dsReturn

中不存在 dtReturn 这样的表格

也许添加这个应该可以做到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));