Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Непонятки с reader / 11 сообщений из 11, страница 1 из 1
31.01.2006, 13:38
    #33513280
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
Имею следующий код:
Код: plaintext
1.
2.
3.
4.
5.
            myCommand1.CommandText = "SELECT tShemaR.* FROM tShemaR WHERE (tipAb_ = " & i & ")"
            myCommand1.Connection = myConnect1
            myReader1 = myCommand1.ExecuteReader
            myCommand2.CommandText = "SELECT tShemaP.* FROM tShemaR WHERE (tipAb_ = " & i & ")"
            myCommand2.Connection = myConnect2
            myReader2 = myCommand2.ExecuteReader
На последней строке выскакивает ошибка. Объясните почему?
...
Рейтинг: 0 / 0
31.01.2006, 14:02
    #33513347
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
что за ошибка?

Вы точно уверены, что myConnect1!=myConnect2?
...
Рейтинг: 0 / 0
31.01.2006, 14:11
    #33513371
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
Соединение с одним и тем-же сервером
Но если я буду ссылаться на один и тот-же connect, то будет следующая реплика:
Код: plaintext
Additional information: There is already an open DataReader associated with this Connection which must be closed first. 
Поэтому мне пришлось создать дополнительные подключения, но уже под другими именами. Теперь выскакивает это:
Код: plaintext
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
...
Рейтинг: 0 / 0
31.01.2006, 14:22
    #33513408
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
Во-первых, дополнительные подключения могут быть идентичны первому, в тч и по креденшелам. Важно только чтоб это было два конекшена а не две ссылки на один.

Во-вторых:
попробуйте отобразить сведения об исключении:

catch(OleDbException exception)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   for (int i= 0 ; i < exception.Errors.Count; i++)
   {
      MessageBox.Show("Index #" + i + "\n" +
             "Message: " + exception.Errors[i].Message + "\n" +
             "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
             "Source: " + exception.Errors[i].Source + "\n" +
             "SQL: " + exception.Errors[i].SQLState + "\n");
   }

Кстати, что за источник данных у вас? SQL Server, Access?
...
Рейтинг: 0 / 0
31.01.2006, 14:25
    #33513417
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
saintВо-первых, дополнительные подключения могут быть идентичны первому, в тч и по креденшелам. Важно только чтоб это было два конекшена а не две ссылки на один.
Ето как? Каким образом это достигается?
saintКстати, что за источник данных у вас? SQL Server, Access?
MSSQL Server
...
Рейтинг: 0 / 0
31.01.2006, 14:34
    #33513443
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
Nikolay Gerasimov
MSSQL Server
Тогда логичнее использовать SqlClient, а не OleDb


Nikolay Gerasimov
Ето как? Каким образом это достигается?

ну например для sql client:

Код: plaintext
1.
2.
string con_string="строка подключения...";
SqlConnection con1 = new SqlConnection(con_string);
SqlConnection con2 = new SqlConnection(con_string);
Получается два отдельных конекшена, но с одинаковыми параметрами, кстати они будут находится к тому же в одном пуле.

Насчет ошибки - выведите native код как я вам показал.
...
Рейтинг: 0 / 0
31.01.2006, 14:55
    #33513518
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
saint
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   for (int i= 0 ; i < exception.Errors.Count; i++)
   {
      MessageBox.Show("Index #" + i + "\n" +
             "Message: " + exception.Errors[i].Message + "\n" +
             "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
             "Source: " + exception.Errors[i].Source + "\n" +
             "SQL: " + exception.Errors[i].SQLState + "\n");
   }

exception.Errors.Count - выдается ошибка "is not a member of 'System.exception'".
Приложение пишу на vb.net
...
Рейтинг: 0 / 0
31.01.2006, 15:36
    #33513654
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
дык Exception должен быть нужного класса:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
catch(OleDbException exception)
{
   for (int i= 0 ; i < exception.Errors.Count; i++)
   {
      MessageBox.Show("Index #" + i + "\n" +
             "Message: " + exception.Errors[i].Message + "\n" +
             "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
             "Source: " + exception.Errors[i].Source + "\n" +
             "SQL: " + exception.Errors[i].SQLState + "\n");
   }
 }

я же написал, просто забыл выделить
...
Рейтинг: 0 / 0
01.02.2006, 22:53
    #33517632
VSH
VSH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
Открытый ридер может быть только один на соединении. Надо закрыть первый ридер, затем открыть второй.

"While the SqlDataReader is in use, the associated SqlConnection is busy serving the SqlDataReader. While in this state, no other operations can be performed on the SqlConnection other than closing it. This is the case until the Close method of the SqlDataReader is called." MSDN
...
Рейтинг: 0 / 0
02.02.2006, 09:51
    #33518023
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
VSHОткрытый ридер может быть только один на соединении. Надо закрыть первый ридер, затем открыть второй.

"While the SqlDataReader is in use, the associated SqlConnection is busy serving the SqlDataReader. While in this state, no other operations can be performed on the SqlConnection other than closing it. This is the case until the Close method of the SqlDataReader is called." MSDN

именно так
толко у вопошающего 2 (ДВА) коннекшена: myConnect1 и myConnect2
...
Рейтинг: 0 / 0
02.02.2006, 09:53
    #33518027
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки с reader
в догон
1) действительно, не понятно - почему используете OLEDB для MS SQL Server

2) MS SQL Server 2005 может обслуживать более 1-го ридера на одном соединении

Шайтан
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Непонятки с reader / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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