DataTable.Select

转载请注明出处:http://www.cnblogs.com/havedream/p/4453297.html

 

方法:DataTable.Select

作用:获取 DataRow 对象的数组。
重载:
  1. Select()------------------------------------------------获取所有 DataRow 对象的数组。 
  2. Select(String)-------------------------------------------获取按与筛选条件相匹配的所有 DataRow 对象的数组。
  3. Select(String, String)-------------------------------------获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow 对象的数组。
  4. Select(String, String, DataViewRowState)------------------获取与排序顺序中的筛选器以及指定的状态相匹配的所有 DataRow 对象的数组。
 为了更好的说明如何使用该方法,用下面的示例来说明:
注:最后会有完成的代码,这里只是贴出来了部分代码
1、新建Datatable表,绑定主界面datagridview
        /// <summary>
        /// 初始化Table表和界面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            tblDatas = new DataTable("Datas");
            DataColumn dc = null;
            dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
            dc.AutoIncrement = true;//自动增加
            dc.AutoIncrementSeed = 1;//起始为1
            dc.AutoIncrementStep = 1;//步长为1
            dc.AllowDBNull = false;//

            dc = tblDatas.Columns.Add("名称", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("版本", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("描述", Type.GetType("System.String"));

            DataRow newRow;
            newRow = tblDatas.NewRow();
            newRow["名称"] = "天龙八部OL";
            newRow["版本"] = "3.0";
            newRow["描述"] = "几万块钱的装备基本看不见,被秒的节奏";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["名称"] = "神仙道";
            newRow["版本"] = "4.0";
            newRow["描述"] = "页游,没事玩一下,别认真,坑太多";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["名称"] = "实况2013";
            newRow["版本"] = "1.0";
            newRow["描述"] = "经典游戏,不过这个版本直塞是个bug";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["名称"] = "真.三国无双5";
            newRow["版本"] = "1.0";
            newRow["描述"] = "经典游戏,没事的时候还会玩玩,习惯了旧版本就不想玩新的了";
            tblDatas.Rows.Add(newRow);

            dataGridView1.DataSource = tblDatas;
            dataGridView1.Columns[0].Width = 50;
            dataGridView1.Columns[1].Width = 150;
            dataGridView1.Columns[2].Width = 50;
            //for (int i = 0; i < dataGridView1.Columns.Count; i++)
            //{
            //    dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            //}
        }

运行之后结果如下:

 
2、DataTable.Select()方法
        private void button2_Click(object sender, EventArgs e)
        {
            DataRow[] rows = tblDatas.Select();

            for (int i = 0; i < rows.Length; i++)
            {
                listBox1.Items.Insert(0, "DataTable.Select()--------------" + rows[i]["名称"]);
            }
        }

运行结果:

3、DataTable.Select(版本='1.0')

        private void button3_Click(object sender, EventArgs e)
        {
            DataRow[] rows = tblDatas.Select("版本='1.0'");

            for (int i = 0; i < rows.Length; i++)
            {
                listBox1.Items.Insert(0, "DataTable.Select(版本='1.0')--------------" + rows[i]["名称"]);
            }
        }


运行结果:

4、DataTable.Select(版本='1.0', ID DESC)

        private void button4_Click(object sender, EventArgs e)
        {
            DataRow[] rows = tblDatas.Select("版本='1.0'"," ID DESC");

            for (int i = 0; i < rows.Length; i++)
            {
                listBox1.Items.Insert(0, "DataTable.Select(版本='1.0', ID DESC)--------------" + rows[i]["名称"]);
            }
        }

运行结果:

5、DataTable.Select(版本='1.0', ID DESC, DataViewRowState.Added)

        private void button5_Click(object sender, EventArgs e)
        {
            DataRow[] rows = tblDatas.Select("版本='1.0'", " ID DESC", DataViewRowState.Added);

            for (int i = 0; i < rows.Length; i++)
            {
                listBox1.Items.Insert(0, "DataTable.Select(版本='1.0', ID DESC, DataViewRowState.Added)--------------" + rows[i]["名称"]);
            }
        }

运行结果:

对于DataViewRowState,MSDN给出的成员类型如下:

可以根据自己的需要进行筛选。

原文地址:https://www.cnblogs.com/havedream/p/4453297.html