Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / сбой при чтении данных во вложенном цикле / 7 сообщений из 7, страница 1 из 1
03.05.2012, 15:54
    #37780723
raven_2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
доброе время суток, коллеги!
нужно по ходу выполнения приложения перебрать данные в таблице и для каждой записи, отвечающей некоторому условию, сделать запрос на удаленный сервер.
работаю парами
SQLDataReader и
SqlCommand

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  SqlString1 = "select id from RentDocs where IsReady='1' and isnull(ServerId,0)<>'0' and DogovorImage is null";
            comm1 = new SqlCommand(SqlString1, oleConnection);
            myDr1 = comm1.ExecuteReader();
            while (myDr1.Read())
            {
                try
                {
                    id1 = Convert.ToInt64(myDr1["id"].ToString());
                }
                catch (Exception xx)
                {
                    id1 = 0;
                }

                SqlString2 = "select ServerId from RentDocs where id='" + id1.ToString() + "' ";
                comm2 = null;
                comm2 = new SqlCommand(SqlString2, oleConnection);
                myDr2 = comm2.ExecuteReader();
                myDr2.Read();
                . . . 
            }


на строке myDr2 = comm2.ExecuteReader();
дает ошибку: "Для этой команды существует уже открытый SQL DataReader, который необходимо закрыть"
что я делаю не так?
...
Рейтинг: 0 / 0
03.05.2012, 17:11
    #37780934
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
raven_2008доброе время суток, коллеги!
нужно по ходу выполнения приложения перебрать данные в таблице и для каждой записи, отвечающей некоторому условию, сделать запрос на удаленный сервер.
работаю парами
SQLDataReader и
SqlCommand

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  SqlString1 = "select id from RentDocs where IsReady='1' and isnull(ServerId,0)<>'0' and DogovorImage is null";
            comm1 = new SqlCommand(SqlString1, oleConnection);
            myDr1 = comm1.ExecuteReader();
            while (myDr1.Read())
            {
                try
                {
                    id1 = Convert.ToInt64(myDr1["id"].ToString());
                }
                catch (Exception xx)
                {
                    id1 = 0;
                }

                SqlString2 = "select ServerId from RentDocs where id='" + id1.ToString() + "' ";
                comm2 = null;
                comm2 = new SqlCommand(SqlString2, oleConnection);
                myDr2 = comm2.ExecuteReader();
                myDr2.Read();
                . . . 
            }


на строке myDr2 = comm2.ExecuteReader();
дает ошибку: "Для этой команды существует уже открытый SQL DataReader, который необходимо закрыть"
что я делаю не так?

По моему все не так.

1. Почему все параметры строковые ?
2. Почему не используется SqlParametr
3. А логику запросов если честно не осилил. В первом запросе в таблице выбираем id документа по фильтру IsReady='1' and isnull(ServerId,0)<>'0', а внутри в этой же таблице по полученому id документа , выбираем ServerId ???
...
Рейтинг: 0 / 0
03.05.2012, 17:20
    #37780954
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
да и еще 2 DataReader не открыть
...
Рейтинг: 0 / 0
03.05.2012, 17:45
    #37781009
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
raven_2008,

Напишите нормальный запрос или х-ую процедуру. Нафиг какие-то циклы? За такое студентам ставят двойки, а с работы - выгоняют.
Опять же, sql-injection детектед.
...
Рейтинг: 0 / 0
03.05.2012, 18:21
    #37781082
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
в ошибке содержится ответ на ваш вопрос
авторДля этой команды существует уже открытый SQL DataReader, который необходимо закрыть
...
Рейтинг: 0 / 0
03.05.2012, 18:23
    #37781086
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
...
Рейтинг: 0 / 0
03.05.2012, 18:25
    #37781090
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбой при чтении данных во вложенном цикле
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / сбой при чтении данных во вложенном цикле / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]