2016-03-18 4 views
0

У меня есть таблица с идентификаторами столбцов, MenuText и ParentID.C# через столбец A и столбец B для совпадений

Мне нужно перенести первое значение из идентификатора и перебрать значения в ParentID для любых совпадений. Если есть совпадение, вставьте значение из MenuText, которое совпадает с номером столбца с идентификатором столбца в строку. Если совпадения нет, перейдите к второму значению в идентификаторе столбца и проведите по ним значения в столбце 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

В этом случае результат должен быть 'латук, Orange, Sausage' правильно? –

+0

Вы получаете какие-либо записи в dt.Rows? –

+0

Каков ожидаемый результат? 'Lettuce'? –

ответ

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"); 

Ouput

Lettuce 
Orange 
Orange 

Рабочая code