2015-07-06 3 views
0

У меня есть таблица Menu, имеющая рекурсивное отношение ко многим. Таблица содержит меню и подменю.Как получить отличительные данные из SQL в следующем сценарии?

Когда я выполнить запрос я получаю результат:

->Form.....Activity 
->Form.....Report 
->Review..Activity 
->Review..Report 

Но я хочу, чтобы хранить эту информацию в коллекциях # C (Список/Словарь), в следующем формате.

->Form 
    Activity 
    Report 
->Review 
    Activity 
    Report 

Примечание: Я использую SQL-Data-Reader в C# для извлечения информации из SQL Server 2008.
Как я могу добиться этого?

+2

Включите запрос и код, который вы пробовали в своем вопросе. – sqluser

ответ

0

Поскольку кода нет, я объясню свой ответ словами.

Вы можете использовать словарь или хэш-таблицу для хранения данных с помощью C#.

Использование Словарь:

Объявите словарь, который будет хранить ключ и список значений, т.е.

Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>(); 

Затем при запросе возврата данных, которые вы можете сделать следующее. Скажем, вы читаете данные из DataTable.

Foreach(DataRow row in yourDataTable.Rows) 
{ 
     if(dicData.ContainsKey(row["firstColumn"])) 
     { 
     dicData[row["firstColumn"].ToString()].Add(row["secondColumn"].ToString()); 
     } 
     else 
     { 
     List<string> list = new List<string>(); 
     list.Add(row["secondColumn"].ToString()) 

     dicData.Add(row["firstColumn"].ToString(), list) 
     } 
} 

NB: Код не проверял, но это даст вам представление о том, что вам нужно сделать. Надеюсь, это поможет

Смежные вопросы