天天看点

DataTable.Select 方法

DataTable.Select方法返回获取所有DataRow对象的数组。Select()有四个重载方法.

名称 说明
DataTable.Select 方法
DataTable.Select 方法
Select () 获取所有 DataRow 对象的数组。
DataTable.Select 方法
DataTable.Select 方法
Select(String) 按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 DataRow 对象的数组。
DataTable.Select 方法
DataTable.Select 方法
Select(String, String) 获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow  对象的数组。
DataTable.Select 方法
DataTable.Select 方法
Select(String, String, DataViewRowState) 获取与排序顺序中的筛选器以及指定的状态相匹配的所有 DataRow  对象的数组。

1.Select()示例:

 private void GetRows()

{

    // Get the DataTable of a DataSet.

    DataTable table = DataSet1.Tables["Suppliers"];

    DataRow[] rows = table.Select();

    // Print the value one column of each DataRow.

    for(int i = 0; i < rows.Length ; i++)

    {

        Console.WriteLine(rows[i]["CompanyName"]);

    }

}

2.Select(string filterExpression)示例:

 private void GetRowsByFilter()

{

    DataTable table = DataSet1.Tables["Orders"];

    // Presuming the DataTable has a column named Date.

    string expression;

    expression = "Date > #1/1/00#";

    DataRow[] foundRows;

    // Use the Select method to find all rows matching the filter.

    foundRows = table.Select(expression);

    // Print column 0 of each returned row.

    for(int i = 0; i < foundRows.Length; i ++)

    {

        Console.WriteLine(foundRows[i][0]);

    }

}

3.Select(string filterExpression,string sort)示例:

    private void GetRowsByFilter()

   {

       DataTable table = DataSet1.Tables["Orders"];

       // Presuming the DataTable has a column named Date.

       string expression = "Date > '1/1/00'";

       // Sort descending by column named CompanyName.

       string sortOrder = "CompanyName DESC";

       DataRow[] foundRows;

       // Use the Select method to find all rows matching the filter.

       foundRows = table.Select(expression, sortOrder);

      // Print column 0 of each returned row.

       for(int i = 0; i < foundRows.Length; i ++)

       {

           Console.WriteLine(foundRows[i][0]);

       }

   }

4.Select(string filterExpression,string sort, DataViewRowState recordStates)示例:

     private static void GetRowsByFilter()

    {

        DataTable customerTable = new DataTable("Customers");

        // Add columns

        customerTable.Columns.Add("id", typeof(int));

        customerTable.Columns.Add("name", typeof(string));

        // Set PrimaryKey

        customerTable.Columns[ "id" ].Unique = true;

        customerTable.PrimaryKey = new DataColumn[]

            { customerTable.Columns["id"] };

        // Add ten rows

        for(int id=1; id<=10; id++)

        {

            customerTable.Rows.Add(

                new object[] { id, string.Format("customer{0}", id) });

        }

        customerTable.AcceptChanges();

        // Add another ten rows

        for(int id=11; id<=20; id++)

        {

            customerTable.Rows.Add( new object[] { id, string.Format("customer{0}", id) });

        }

        string expression;

        string sortOrder;

        expression = "id > 5";

        // Sort descending by column named CompanyName.

        sortOrder = "name DESC";

        // Use the Select method to find all rows matching the filter.

        DataRow[] foundRows =

            customerTable.Select(expression, sortOrder,

            DataViewRowState.Added);

        PrintRows(foundRows, "filtered rows");

        foundRows = customerTable.Select();

        PrintRows(foundRows, "all rows");

    }

    private static void PrintRows(DataRow[] rows, string label)

    {

        Console.WriteLine("/n{0}", label);

        if(rows.Length <= 0)

        {

            Console.WriteLine("no rows found");

            return;

        }

        foreach(DataRow row in rows)

        {

            foreach(DataColumn column in row.Table.Columns)

            {

                Console.Write("/table {0}", row[column]);

            }

            Console.WriteLine();

        }

    }

继续阅读