.NET Framework 开发员指南   查看表中的数据  [C#]请参见
在数据表中操作数据 | 行状态与行版本 | DataRow 类 | DataSet 类 | DataTable 类 | DataViewRowState 枚举
语言
C#Visual Basic全部显示
可以使用 DataTable 的 Rows 和 Columns 集合来访问 DataTable 中的内容。也可以根据包括搜索标准、排序顺序和行状态等特定标准,使用 DataTable.Select 方法返回 DataTable 中数据的子集。此外,用主键值搜索特定行时,还可使用 DataRowCollection 的 Find 方法。DataTable 对象的 Select 方法返回一组与指定条件匹配的 DataRow 对象。Select 采用筛选表达式、排序表达式和 DataViewRowState 的可选参数。筛选表达式根据 DataColumn 值(例如 LastName = 'Smith'。排序表达式遵循用于为列排序的标准 SQL 约定,例如 LastName ASC, FirstName ASC。有关编写表达式的规则,请参见 DataColumn 类的 Expression 属性。提示   如果将对 DataTable 的 Select 方法执行多次调用,可以先为 DataTable 创建 DataView 以提高性能。创建 DataView 会为表中的行编制索引。然后,Select 方法会使用该索引,这样将显著缩短生成查询结果的时间。有关为 DataTable 创建 DataView 的信息,请参见创建和使用 DataView。
Select 方法基于 DataViewRowState 确定要查看或操作的行的版本。下表说明了可能的 DataViewRowState 枚举值。成员名称 说明 
CurrentRows 当前行,包括未更改的行、已添加的行和已修改的行。 
Deleted 已删除的行。 
ModifiedCurrent 当前版本,它是原始数据的修改版本(请参见 ModifiedOriginal)。 
ModifiedOriginal 所有已修改行的原始版本。使用 ModifiedCurrent 时,当前版本可用。 
Added 新行。 
None 无。 
OriginalRows 原始行,包括未更改的行和已删除的行。 
Unchanged 未更改的行。 在下面的示例中,DataSet 对象已经过筛选,这样,您可以只使用其 DataViewRowState 设置为 CurrentRows 的行。[Visual Basic]
Dim myCol As DataColumn
Dim myRow As DataRowDim currRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.CurrentRows)If (currRows.Length < 1 ) Then
  Console.WriteLine("No Current Rows Found")
Else
  For Each myCol in workTable.Columns
    Console.Write(vbTab & myCol.ColumnName)
  Next  Console.WriteLine(vbTab & "RowState")  For Each myRow In currRows
    For Each myCol In workTable.Columns
      Console.Write(vbTab & myRow(myCol).ToString())
    Next    Dim rowState As String = System.Enum.GetName(myRow.RowState.GetType(), myRow.RowState)
    Console.WriteLine(vbTab & rowState)
  Next
End If[C#]
DataRow[] currRows = workTable.Select(null, null, DataViewRowState.CurrentRows);if (currRows.Length < 1 )
  Console.WriteLine("No Current Rows Found");
else
{
  foreach (DataColumn myCol in workTable.Columns)
    Console.Write("\t{0}", myCol.ColumnName);  Console.WriteLine("\tRowState");  foreach (DataRow myRow in currRows)
  {
    foreach (DataColumn myCol in workTable.Columns)
      Console.Write("\t{0}", myRow[myCol]);    Console.WriteLine("\t" + myRow.RowState);
  }
}Select 方法可用于返回具有不同 RowState 值或字段值的行。以下示例返回一个引用所有已删除行的 DataRow 数组,并返回另一个引用所有已按 CustLName 排序的行(其中 CustID 列大于 5)的 DataRow 数组。有关如何在 Deleted 行中查看信息的信息,请参见行状态与行版本。[Visual Basic]
' Retrieve all deleted rows.
Dim delRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.Deleted)' Retrieve rows where CustID > 5, and order by CustLName.
Dim custRows() As DataRow = workTable.Select("CustID > 5", "CustLName ASC")[C#]
// Retrieve all deleted rows.
DataRow[] delRows = workTable.Select(null, null, DataViewRowState.Deleted);// Retrieve rows where CustID > 5, and order by CustLName.
DataRow[] custRows = workTable.Select("CustID > 5", "CustLName ASC");请参见
在数据表中操作数据 | 行状态与行版本 | DataRow 类 | DataSet 类 | DataTable 类 | DataViewRowState 枚举发送有关此主题的意见 &copy; 2001-2002 Microsoft Corporation。保留所有权利。 

解决方案 »

  1.   

    你的DataSet里面放那么多数据做啥子?
    要前100条就只从数据库读TOP 100条
      

  2.   

    select top 100 *
      where xxx=xxx
    在selsect语句中实现
      

  3.   

    我跟各位说明一下,我们做项目的时候都是把数据库中的字典表数据一次性读到前台的DataSet中,以后程序处理的时候如果要用到字典表,就到DataSet中访问就行了,这样就避免了频繁的访问数据库。
      

  4.   

    waysens(小光) ,没错!我也有这样的问题!不知怎么解决!你知道如何进行类似于sql中联表查询,在DataSet中怎么作!