2010-03-30 86 views
2

我想返回datagrid視圖的數據集中表的前5條記錄。以下不起作用。返回數據集中表的前5條記錄

DataGridView.DataSource = DS.Tables("TABLENAME").Select("SELECT TOP 5") 

有什麼建議嗎?

使用Visual Studio 2008 - VB.Net

回答

3

如果已填充的數據集,你可以使用LINQ從桌子上取前5行。 (更有效的方法是在數據庫來處理這一點,但是

Dim rows = DS.Tables("Foo").Rows.Cast(Of DataRow)().Take(5) 
+0

對LINQ任何良好來源?就像我說的我正在使用後端數據存儲的訪問數據庫,所以如果LINQ是首選的方法,我應該學習。 – JPJedi 2010-03-30 16:19:56

+0

LINQ是* a *方法,並不總是首選方法,但它對於簡化代碼非常有用。我大部分都是C#編碼器,所以我會指出Jon Skeet的「C#深度」一書。缺少這一點,MSDN始終是可靠的。 – 2010-03-30 16:45:00

1

如何使用TOP子句。假設您正在使用SQL Server。

Select top 5 * from SomeTable

如果你正在使用MySQL存在限制clause

如果您使用的是Oracle查找ROWNUM

0

選擇不一樣,工作,看看在syntax

你想要做的是用你的表格創建一個視圖,對它進行排序並取前五行。

DataView view = DS.Tables[0]; 
view.Sort = "myColumn"; 
//Take first or last 5 rows. 

或者當然只是使用一個「從mytable中選擇最佳5x」並將其插入到數據表中。

1

如果你使用SQL Server 2005或更高版本,您可以使用ROW_NUMBER()函數與數行,然後使用:

DS.Tables("TABLENAME").Select("row_number <= 5")