Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекурсия при чтении БД, SqlDataReader 
V
    Опции темы
Edd
Дата 7.3.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 23.3.2006

Репутация: нет
Всего: 1



Делаю дерево (выглядет примерно так):
-> Test
- -> Test 2
- - -> Test 3
-> Test 4
- -> Test 3
....

Для построения использую рекурсию:
В таблице (IDT, Name, SubID)
IDT - id
Name- название
SubID - id элемента (IDT) 

Код

protected void LoadGNTTreeRekursija(int lvl, string SubID)
    {
        //try
        {
            
            string SQLString = @"...";

            if (lvl == 1)
            {
                SQLString = @"....";
                ListBoxGNTTree.Items.Clear();
                ListBoxGNTTree.Items.Add("root");
                conn.Open();
            }

            string Name = "";
            string Level = "";
            for (int z = 0; z < lvl; z++) Level += "-";

            SqlCommand myCommand = new SqlCommand(SQLString, conn);
            SqlDataReader myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                 string Name = ....;

                ListBoxGNTTree.Items.Add(Level + "> " + Name);
                ListBoxGNTTree.Items[ListBoxGNTTree.Items.Count - 1].Value = myReader["IDT"].ToString;

                LoadGNTTreeRekursija(lvl + 1, myReader["IDT"].ToString());
            }
            myReader.Close();
            if (lvl == 1)  conn.Close();
        }
        //catch { }
    }

ругается на SqlDataReader myReader = myCommand.ExecuteReader(); говорит что уже открыт, но при рекурсии вроде создаётся другой и ни как не связон с придыдущим.
Как можно решить данную проблему?
PM MAIL   Вверх
PashaPash
Дата 7.3.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



Edd, добавь в ConnectionString MultipleActiveResultSets=True.


--------------------
PM MAIL WWW   Вверх
Edd
Дата 11.3.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 23.3.2006

Репутация: нет
Всего: 1



 smile Спасибо! Помогло
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.