【问题标题】:Return top 5 records of a table in a dataset返回数据集中表的前 5 条记录
【发布时间】:2011-02-02 12:37:12
【问题描述】:

我想为数据网格视图返回数据集中表的前 5 条记录。以下不起作用。

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

有什么建议吗?

使用 Visual Studio 2008 - VB.Net

【问题讨论】:

    标签: vb.net select dataset


    【解决方案1】:

    如果数据集已填充,您可以使用 LINQ 从表中获取前 5 行。 (然而,更有效的方法是在数据库中处理这个问题。)

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

    【讨论】:

    • LINQ 有什么好的资源吗?就像我说的那样,我正在为后端数据存储使用访问数据库,所以如果 LINQ 是我应该学习的首选方法。
    • LINQ 是 a 方法,并不总是首选方法,但它非常适合简化代码。我大部分时间都是 C# 编码员,所以我会向您指出 Jon Skeet 的“C# in Depth”一书。没有这一点,MSDN 总是可靠的。
    【解决方案2】:

    Select 不行,看看syntax

    您要做的是使用您的表格创建一个视图,对其进行排序并获取前五行。

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

    或者当然只是使用“SELECT TOP 5 x from mytable”并将其插入到您的数据表中。

    【讨论】:

      【解决方案3】:

      如何使用 TOP 子句。这假设您使用的是 SQL Server。

      Select top 5 * from SomeTable

      如果您使用 MySQL,则有限制 clause

      如果您使用 Oracle 查找 ROWNUM

      【讨论】:

        【解决方案4】:

        如果您使用的是 SQL Server 2005 或更高版本,则可以使用 ROW_NUMBER() 函数对行进行编号,然后使用:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-06
          • 1970-01-01
          相关资源
          最近更新 更多