C#循环通过A列和B列进行匹配

时间:2016-03-18 07:04:38

标签: c#

我有一个包含列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());
    }



}

当我调试时,我没有返回任何值。

1 个答案:

答案 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