DataTable查询

来源:互联网 发布:淘宝无线店铺网址 编辑:程序博客网 时间:2024/05/22 08:08
这里说到的查询有两种。
1.DataTable.Select
2.DataTable.Rows.Find

a>先建立一个DataTable供使用吧。

  /// <summary>
        /// 获取单张表
        /// </summary>
        /// <returns></returns>
        public static DataTable GetTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Id", typeof(int)));
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Age", typeof(int)));
            DataRow dr = dt.NewRow();
            dr["Id"] = 1;
            dr["Name"] = "tangh";
            dr["Age"] = 20;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 2;
            dr["Name"] = "tangha";
            dr["Age"] = 19;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 3;
            dr["Name"] = "tanghao";   
dr["Age"] = 21;
            dt.Rows.Add(dr);
            return dt;
        }


         
2.然后我们来使用第一种Select方法。

/// <summary> /// 使用DataTable.Select方法检索 /// </summary> public static void VilideDataTableSelect() { DataTable dt = GetTable(); // 类似where条件查询,可以使用Id=2 and Name=ddd DataRow[] rows = dt.Select("Id=2 and Name like 'tang%'"); // select类似where条件 foreach (DataRow dr in rows) { Console.Write(string.Format("Id={0},Name={1},Age={2}", dr["Id"], dr["Name"], dr["Age"])); } }

3.最后使用以下,Find方法。

/// <summary> /// 使用DataTable.Rows.Find方法检索 /// </summary> public static void VilideDataRowFind() { DataTable dt = GetTable(); // 设置主键,可以使用复合主键 dt.PrimaryKey = new DataColumn[] { dt.Columns["Id"] }; DataRow dr = dt.Rows.Find(2); // 查找Id=2的。即,这里检索主键。 Console.Write(string.Format("Id={0},Name={1},Age={2}", dr["Id"], dr["Name"], dr["Age"])); }

总结:到现在才发现原来本身有很多方法可以检索的,所以也不必每次都循环遍历查找了。
O(∩_∩)O~。
0 0
原创粉丝点击