2011-06-22 47 views
-1

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

[?你刚才不是 “问” 这个早期(http://stackoverflow.com/questions/6438509/datatable-add-to-dataset) –

回答

0

您正在使用

DataTable dtReturn = dsReturn.Tables.Add(); 

这将与名称类似表1或别的东西添加DataTable

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

在这里,你所使用的名称这实际上是DataTable的实例名称,而不是DataSet中包含的实例名称。没有这样的表为dtReturnDataSet dsReturn存在

也许加入这应该做的伎俩dtReturn.TableName = "dtReturn";

+0

我有修改表名称,如dsReturn.Tables [“Table1”]。ImportRow((row));但仍然得到相同的错误 – Rajan

+0

你检查通过设置'TableName'它不需要总是Table1,也检查你在调试'dsReturn.Tables [“Table1”]'应为null – V4Vendetta

+0

期间得到我检查它..它在调试期间是Table1 .. – Rajan

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)); 
+0

为什么不使用这个:DataRow newrowdata? –