2013-06-11 24 views
0

我有存儲在DataSet中的應用程序的信息。數據集的表0(由DataSet.Tables [0]訪問)有一個名爲「站ID」的列。我需要得到一個只包含此列的數據集。如何獲取DataSet的一列?

如何使用所有工作站ID填充新的DataSet?

+1

有可能是一個方便的LINQ的方式來做到這一點,但是那外面你只是需要創建第二個數據集,把數據表中它與那一列,然後逐行復制它。 – BlargleMonster

+0

@BlargleMonster - 這正是我想象的。謝謝! – iamthesgt

回答

2

你需要創建一個新的DataSetDataTable有你的列和複製行:

 DataSet ds = new DataSet(); 
     DataTable dt = new DataTable(); 
     dt.Columns.Add(oldDt.Columns["StationID"]); 

     for (int i = 0; i < oldDt.Rows.Count; i++) 
     { 
      dt.Rows[i]["StationID"] = oldDt.Rows[i]["StationID"]; 
     } 
     ds.Tables.Add(dt); 

或者,您可以克隆當前的數據表,並刪除列不需要:

 DataTable dt = oldDt.Copy(); 
     dt.Columns.Remove("Column1"); 
     dt.Columns.Remove("Column2"); 
     //... 
1

嘗試......

public DataSet DataSetStationId(DataSet yourDataSet) 
    { 
     DataSet newDs = new DataSet(); 

     DataTable newDt = new DataTable(); 

     newDt.Columns.Add(new DataColumn("Station Id")); 

     for (int i = 0; i < yourDataSet.Tables[0].Rows.Count; i++) 
     { 
      newDt.Rows[i]["Station Id"] = yourDataSet.Tables[0].Rows[i]["Station Id"]; 
     } 

     newDs.Tables.Add(newDt); 

     return newDs; 

    } 
1

如果喲ü想只是一個值,你知道行號:

DataSet ds = new DataSet(); 
DataTable dt = new DataTable() 
int StationID = Convert.ToInt32(ds.dt.[RowID][StationID]) 
相關問題