我有一个包含列ID,MenuText和ParentID的表。
我需要从ID获取第一个值并循环访问任何匹配的ParentID中的值。如果匹配,请将MenuText中与列ID相同的行数插入字符串中。如果没有匹配项,请继续执行列ID中的第二个值,并循环匹配“ParentID”列中的值。
以下是数据样本:
ID MenuText ParentID
1 Vegetable NULL
2 Fruit NULL
3 Meat NULL
4 Lettuce 1
5 Orange 2
6 Sausage 3
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=GTPerformancelot;Integrated Security=True;");
SqlDataAdapter sda = new SqlDataAdapter("Select * from List_Cars_Menu", con);
DataTable dt = new DataTable();
sda.Fill(dt);
string link1 = dt.Rows[0]["ID"].ToString();
string text;
foreach (DataRow dr in dt.Rows)
{
if (string.Compare(dr["ParentID"].ToString(), link1, true) == 0)
text = (dr["MenuText"].ToString());
}
}
当我调试时,我没有返回任何值。
答案 0 :(得分:0)
您可以使用DataTable
Linq
上进行简单的自我加入
var rows = from t1 in table.AsEnumerable()
join t2 in table.AsEnumerable()
on t1.Field<string>("ID") equals t2.Field<string>("ParentID")
select t2.Field<string>("MenuText");
<强>输出继电器强>
Lettuce
Orange
Orange
工作code