【发布时间】:2011-02-02 12:37:12
【问题描述】:
我想为数据网格视图返回数据集中表的前 5 条记录。以下不起作用。
DataGridView.DataSource = DS.Tables("TABLENAME").Select("SELECT TOP 5")
有什么建议吗?
使用 Visual Studio 2008 - VB.Net
【问题讨论】:
我想为数据网格视图返回数据集中表的前 5 条记录。以下不起作用。
DataGridView.DataSource = DS.Tables("TABLENAME").Select("SELECT TOP 5")
有什么建议吗?
使用 Visual Studio 2008 - VB.Net
【问题讨论】:
如果数据集已填充,您可以使用 LINQ 从表中获取前 5 行。 (然而,更有效的方法是在数据库中处理这个问题。)
Dim rows = DS.Tables("Foo").Rows.Cast(Of DataRow)().Take(5)
【讨论】:
Select 不行,看看syntax。
您要做的是使用您的表格创建一个视图,对其进行排序并获取前五行。
DataView view = DS.Tables[0];
view.Sort = "myColumn";
//Take first or last 5 rows.
或者当然只是使用“SELECT TOP 5 x from mytable”并将其插入到您的数据表中。
【讨论】:
如何使用 TOP 子句。这假设您使用的是 SQL Server。
即Select top 5 * from SomeTable
如果您使用 MySQL,则有限制 clause
如果您使用 Oracle 查找 ROWNUM
【讨论】:
如果您使用的是 SQL Server 2005 或更高版本,则可以使用 ROW_NUMBER() 函数对行进行编号,然后使用:
DS.Tables("TABLENAME").Select("row_number <= 5")
【讨论】: