关于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 + "'");
}
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 + "'");
}