关于DataTable的一点意外用法

假如有如下数据:  
  id     curr       next  
  1       A               B  
  1       B               C  
  1       C               D  
  1       D               E  
  1       E               F  
  假如知道ID=1和curr=B,求最后一个节点E  

DataTable   dt   =   new   DataTable();  
   
  dt.Columns.Add("ID");  
  dt.Columns.Add("CURR");  
  dt.Columns.Add("NEXT");  
   
  DataRow   dr1   =   dt.NewRow();  
  dr1["ID"]   =   "1";  
  dr1["CURR"]   =   "A";  
  dr1["NEXT"]   =   "B";  
  dt.Rows.Add(dr1);  
   
  dr1   =   dt.NewRow();  
  dr1["ID"]   =   "1";  
  dr1["CURR"]   =   "B";  
  dr1["NEXT"]   =   "C";  
  dt.Rows.Add(dr1);  
   
  dr1   =   dt.NewRow();  
  dr1["ID"]   =   "1";  
  dr1["CURR"]   =   "C";  
  dr1["NEXT"]   =   "D";  
  dt.Rows.Add(dr1);  
   
  dr1   =   dt.NewRow();  
  dr1["ID"]   =   "1";  
  dr1["CURR"]   =   "D";  
  dr1["NEXT"]   =   "E";  
  dt.Rows.Add(dr1);  
   
  dr1   =   dt.NewRow();  
  dr1["ID"]   =   "1";  
  dr1["CURR"]   =   "E";  
  dr1["NEXT"]   =   "F";  
  dt.Rows.Add(dr1);  
   
  string   strCurr   =   "B";  
  DataRow[]   drs   =   dt.Select("CURR='"   +   strCurr   +   "'");  
   
  for   (;drs.Length   !=   0;)  
  {  
  if   (drs[0]["curr"].ToString()   ==   "E")  
  {  
  Response.Write(drs[0]["curr"].ToString());  
  break;  
  }  
  strCurr   =   drs[0]["next"].ToString();  
  drs   =   dt.Select("CURR='"   +   strCurr   +   "'");  
  }
posted on 2008-06-25 22:18  小顾问  阅读(335)  评论(0编辑  收藏  举报