2013-04-16 85 views
1

我正在使用LINQ(vb.net)編寫代碼來查找數據表中每列的最大值。我的數據如下所示:

+ ----------- + ---------- + ---------- + ------ ---- +
|    日期  | Value1   | Value2   | Value3   |
+ ----------- + ---------- + ---------- + ---------- +
| 2013年1月1日|             12 |               13 |                 19 |
| 1/2/2013 |                 9 |               20 |                 17 |
| 1/3/2013 |             17 |                   5 |                 10 |
+ ----------- + ---------- + ---------- + ---------- +
如何使用LINQ(vb.net)找到每列的最大值

我想寫一個代碼與最大值中的每一列的所有數據行返回單個數據記錄,所以我可以用gridview的結果綁定:

+ ---------- + - --------- + ---------- +
|     Max1     |     Max2     |     Max3   |
+ ---------- + ---------- + ---------- +
|               17 |               20 |                 19 |
+ ---------- + ---------- + ---------- +

回答

1

您可以使用Max

Dim rows = table.AsEnumerable() 
Dim Max1 = rows.Max(Function(r) r.Field(Of Int32)("Value1")) 
Dim Max2 = rows.Max(Function(r) r.Field(Of Int32)("Value2")) 
Dim Max3 = rows.Max(Function(r) r.Field(Of Int32)("Value3")) 

如果這些字段實際上是字符串(他們不應該),那麼您必須使用Int32.Parse

如果你需要這些值作爲數據源爲GridView,您可以使用DataTable有一行:

Dim tblSource = New DataTable() 
tblSource.Columns.Add("Max1", GetType(Int32)) 
tblSource.Columns.Add("Max2", GetType(Int32)) 
tblSource.Columns.Add("Max3", GetType(Int32)) 
tblSource.Rows.Add(Max1, Max2, Max3) 
+0

謝謝!無論如何,有沒有辦法將這些結果放入IEnumerable Object或數據行?我想用gridview綁定它。此外,我必須做類似的事情,但與SUM功能,所以我可以將它們添加爲另一行,如果我可以把它們放入單個記錄。 –

+0

@PawichS .:你見過我的編輯嗎? –

+0

Schmeter:哦!現在我可以看到它!非常感謝! :d –

相關問題