Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 22:42   #1
ahvahsky2008
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 31
Хорошо Загрузка данных из БД в TreeView

Код:
string strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=axb.mdb";
            string strSql = "SELECT Категория, ПодКатегория FROM Категория INNER JOIN ПодКатегория ON Категория.Код = ПодКатегория.Id_Категория";
            OleDbConnection con = new OleDbConnection(strProvider);
            OleDbCommand cmd = new OleDbCommand(strSql, con);
            con.Open();
            cmd.CommandType = CommandType.Text;
            OleDbDataReader dr = cmd.ExecuteReader();
 
             DataTable dtTree = new DataTable();
 
             int columnCount = dr.FieldCount;
 
             for (int i = 0; i < columnCount; i++)
             {
                 dataGridView1.Columns.Add(dr.GetName(i).ToString(), dr.GetName(i).ToString());
             }
 
 
             string[] rowData = new string[columnCount];
             while (dr.Read())
             {
                 for (int k = 0; k < columnCount; k++)
                 {
                     if (dr.GetFieldType(k).ToString() == "System.Int32")
                     {
                         rowData[k] = dr.GetInt32(k).ToString();
                     }
 
                     if (dr.GetFieldType(k).ToString() == "System.String")
                     {
                         rowData[k] = dr.GetString(k);
                     }
                 }
 
                 dataGridView1.Rows.Add(rowData);
Таблицы Категория и ПодКатегория связаны отношением 1 ко многим

В общем как сделать
ahvahsky2008 вне форума Ответить с цитированием
Старый 08.01.2012, 19:27   #2
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Для того, что бы построить двухуровневое дерево достаточно отсортировать полученный список по имени категории и пройтись по нему 1 раз.
Если при проходе имя категории встречается первый раз, то надо добавить новый узел первого уровня (категорию) и к нему сразу же добавить подкатегорию. При этом необходимо запомнить узел этой категории. Если при проходе имя текущей категории совпадает с именем предыдущей категории, то добавить текущую подкатегорию в запомненную категорию.
Greek9000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка в treeview Vlad123987 Общие вопросы Delphi 1 31.01.2011 11:18
Вывод данных из таблица Access в TreeView evgenmil БД в Delphi 0 08.12.2008 21:28
вывод xml данных из TreeView в webbrowser Dr.XxX Общие вопросы Delphi 1 10.10.2008 12:06
Как работать с TreeView и таблицей базы данных? Ксюша Помощь студентам 2 24.05.2007 09:02
Сохранение и загрузка узлов TreeView из базы данных Ko$tello Компоненты Delphi 1 14.11.2006 17:15