天天看點

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();

        }

    }

繼續閱讀