關於Datatable中Select()方法的使用(轉)


微軟提供了四個函數的重載,分別是

Select()

Select(string filterExpression)

Select(string filterExpression, string sort)

Select(string filterExpression,string sort, DataViewRowState record States)

1)  Select()——獲取所有 System.Data.DataRow 對象的數組。

2)  Select(string filterExpression)——按照主鍵順序(如果沒有主鍵,則按照添加順序)獲取與篩選條件相匹配的所有 System.Data.DataRow 對象的數組。

3)  Select(string filterExpression, string sort)——獲取按照指定的排序順序且與篩選條件相匹配的所有System.Data.DataRow 對象的數組。

4)  Select(string filterExpression, string sort, DataViewRowState recordStates)——獲取與排序順序中的篩選器以及指定的狀態相匹配的所有 System.Data.DataRow 對象的數組。

示例:

        private class Program
        {
            static DataTable dt = new DataTable();
            static void Main(string[] args)
            {
                DataColumn dc1 = new DataColumn("id");
                dc1.DataType = typeof(int);
                DataColumn dc2 = new DataColumn("name");
                dc2.DataType = typeof(System.String);
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);
                for (int i = 1; i <= 10; i++)
                {
                    DataRow dr = dt.NewRow();
                    if (i <= 5)
                    {
                        dr[0] = i;
                        dr[1] = i + "--" + "hello";
                    }
                    else
                    {
                        dr[0] = i;
                        dr[1] = i + "--" + "nihao";
                    }
                    dt.Rows.Add(dr);
                }

                DataRow[] row;//定義一個DataRow的集合
                //重載1 Select()
                //獲取所有 System.Data.DataRow 對象的數組。
                row = dt.Select();

                //重載2Select(string filterExpression);
                //按照主鍵順序(如果沒有主鍵,則按照添加順序)獲取與篩選條件相匹配的所有 System.Data.DataRow 對象的數組。
                row = dt.Select("id>='3' and name='3--hello'");//支持and
                row = dt.Select("id>='3' or id='1'");//支持or
                row = dt.Select("name like '%hello%'");//支持like  

                //重載3  Select(string filterExpression, string sort)
                //獲取按照指定的排序順序且與篩選條件相匹配的所有 System.Data.DataRow 對象的數組。
                row = dt.Select("id>5", "id desc");

                //重載4  Select(string filterExpression, string sort, DataViewRowState recordStates)
                //獲取與排序順序中的篩選器以及指定的狀態相匹配的所有 System.Data.DataRow 對象的數組。
                row = dt.Select("id>5", "id desc", DataViewRowState.Added);
            }
        }
        private static void Select()
        {
            DataTable dt = new DataTable();
            DataRow[] arrayDR = dt.Select();
            foreach (DataRow dr in arrayDR)
            {
                Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
            }
            Console.ReadLine();
        }
        private static void Select(string filterExpression)
        {
            DataTable dt = new DataTable();//請自行賦值
            DataRow[] arrayDR = dt.Select(filterExpression);
            foreach (DataRow dr in arrayDR)
            {
                Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
            }
            Console.ReadLine();
        }
        private static void Select(string filterExpression, string sort)
        {
            DataTable dt = new DataTable();//請自行賦值
            DataRow[] arrayDR = dt.Select(filterExpression, sort);
            foreach (DataRow dr in arrayDR)
            {
                Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
            }
            Console.ReadLine();
        }
        private static void Select(string filterExpression, string sort, DataViewRowState recordStates)
        {
            DataTable dt = new DataTable();//請自行賦值
            DataRow[] arrayDR = dt.Select(filterExpression, sort, recordStates);
            foreach (DataRow dr in arrayDR)
            {
                Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
            }
            Console.ReadLine();
        }

注意事項:上面的Select操作是大小寫不敏感的(記錄的字段不敏感),如果需要區分大小寫,需要將DataTable的caseSensitive屬性設為true。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM