2010-09-28 199 views
3

我有一個數據集從SQL Server中的存儲過程中獲取填充。我有一個列可以說有一組值。我不知道這些值是什麼。我所知道的是他們的字符串類型。我想從該列中提取所有不同的值。從數據集提取數據

回答

2

您可以使用DataView並設置其RowFilter所需條件:

var view = new DataView(dataset.Tables["Table"]); 
view.RowFilter = "Column = 42"; 

UPDATE:根據您更新的問題,你可以使用LINQ:

var table = dataset.Tables["Table"].AsEnumerable(); 
var distinctValuesForColumn = 
    table.Select(row => (string)row["Column"]).Distinct(); 
+0

對不起。我必須改寫我的問題。我的錯。我有一欄可以說一套價值。我不知道這些值是什麼。我所知道的是他們的字符串類型。我想從該列中提取所有不同的值。我希望現在很清楚。 – zack 2010-09-28 18:18:33

+1

請更新問題本身,而不是在評論中提供此類信息。 – 2010-09-28 18:22:52

+0

謝謝Jordao的想法。但它會引發一個錯誤。它不識別Distinct()。我是否必須將變量類型從var更改爲某些值才能正常工作? – zack 2010-09-28 18:28:39

0

您可以簡單地使用DataTable的選擇方法:

DataRow[] extractedRows = 
    yourDataSet.Tables["YourTableName"].Select("YourColumnName = 123"); 
+0

我很抱歉。我必須改寫我的問題。我的錯。我有一欄可以說一套價值。我不知道這些值是什麼。我所知道的是他們的字符串類型。我想從該列中提取所有不同的值。我希望現在很清楚。 – zack 2010-09-28 18:16:33

0

我希望下面的語句將成爲你的目的

ds.Tables["TableName"].DefaultView.ToTable(true, "columnName"); //For Dataset (true means distinct) 

OR

`ds.Tables[0].DefaultView.ToTable(true, "columnName"); 

//對於數據集,其中tableindex是0

OR

dt.DefaultView.ToTable(true, "columnName"); //For Datatable 

//Syntax is like Datatable.DefaultView.ToTable(Distinct true/false, 「ColumnName」); 

MSDN:http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx