/// <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 ;}
3.最后使用以下,Find方法。/// <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"])); } }
总结:到现在才发现原来本身有很多方法可以检索的,所以也不必每次都循环遍历查找了。/// <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"])); }