DataTable的查找

这里说到的查询有两种。
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"]));            
   }        
}

.最后使用以下,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~。

 

2. DataView dv = tb.DefaultView;
--DataTable的自定义视图。
 dv.RowFilter = "";
 dv.RowFilter = "ERPJournalid='NA'";
--筛选出其中ERPJournalid为‘NA’值记录。

posted @ 2015-09-10 13:31  网络飞侠  阅读(540)  评论(0编辑  收藏  举报