2011-06-22 125 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? –