Using two OleDbDataReaders at the same time

Ask a Question related to ASP.NET Data Grid Control, Design and Development.

  1. #1

    Default Using two OleDbDataReaders at the same time

    I have two OleDbDataReaders that I need to use at the same time. One of the
    DataReadersis used inside a While loop. My code is as follows:

    While eventreader.Read()

    Response.Write(ControlChars.NewLine &
    CStr(eventreader("eventdate")).PadRight(20) &
    CStr(eventreader("eventname")).PadRight(32))

    cmdregistered.CommandText = "SELECT SUM(attending) AS total FROM registered
    WHERE eventid=" & CStr(eventreader("eventid"))

    'eventreader.Close()

    regreader = cmdregistered.ExecuteReader()

    regreader.Read()

    If regreader("total") Is System.DBNull.Value Then

    Response.Write("0" & ControlChars.NewLine)

    Else

    Response.Write(CStr(regreader("total")) & ControlChars.NewLine)

    End If

    regreader.Close()

    End While


    When I use this code I recieve the following error:


    There is already an open DataReader associated with this Connection which
    must be closed first.


    If I close the DataReader using the code which is commented out, I then
    cannot reopen it. I did not have this problem when using an
    OracleDataReader. The only solution I can think of would be to use a DataSet
    rather than a DataReader for the first DataReader, but this would make
    things less efficient. Does anyone know how to avoid this error? Thanks.
    --
    Nathan Sokalski
    [email]njsokalski@hotmail.com[/email]
    [url]http://www.nathansokalski.com/[/url]


    Nathan Sokalski Guest

  2. Similar Questions and Discussions

    1. CFMX7.0.1 Administrator date time issue showing 13hrsbehind server time
      I am running a W2k SP4 box that has been upgraded from CFMX6 to CFMX7.0.1. The CFMX7.0.1 server is showing the date on the Server Settings >...
    2. Access to UTC time with servers running in local time
      There is an undocumented way of getting the server's utc time in seconds just like the time() system call on the server would return it: select...
    3. Access to UTC time with severs running in local time
      I am running server under Linux. Can I get the UTC time in servers with SQL sentences ? The 'current' and 'today' options always return local...
    4. server time vs browser time on cookie expirations
      Say, I want to set a cookie and have it expire an hour after it's set. It's looking like this is only possible for browsers which are in the same...
  3. #2

    Default Re: Using two OleDbDataReaders at the same time

    Have you tried using TWO different connections - one for each
    OleDbDataReader?





    "Nathan Sokalski" <njsokalski@hotmail.com> wrote in message
    news:%23g3hcSavFHA.3984@TK2MSFTNGP09.phx.gbl...
    >I have two OleDbDataReaders that I need to use at the same time. One of the
    >DataReadersis used inside a While loop. My code is as follows:
    >
    > While eventreader.Read()
    >
    > Response.Write(ControlChars.NewLine &
    > CStr(eventreader("eventdate")).PadRight(20) &
    > CStr(eventreader("eventname")).PadRight(32))
    >
    > cmdregistered.CommandText = "SELECT SUM(attending) AS total FROM
    > registered WHERE eventid=" & CStr(eventreader("eventid"))
    >
    > 'eventreader.Close()
    >
    > regreader = cmdregistered.ExecuteReader()
    >
    > regreader.Read()
    >
    > If regreader("total") Is System.DBNull.Value Then
    >
    > Response.Write("0" & ControlChars.NewLine)
    >
    > Else
    >
    > Response.Write(CStr(regreader("total")) & ControlChars.NewLine)
    >
    > End If
    >
    > regreader.Close()
    >
    > End While
    >
    >
    > When I use this code I recieve the following error:
    >
    >
    > There is already an open DataReader associated with this Connection which
    > must be closed first.
    >
    >
    > If I close the DataReader using the code which is commented out, I then
    > cannot reopen it. I did not have this problem when using an
    > OracleDataReader. The only solution I can think of would be to use a
    > DataSet rather than a DataReader for the first DataReader, but this would
    > make things less efficient. Does anyone know how to avoid this error?
    > Thanks.
    > --
    > Nathan Sokalski
    > [email]njsokalski@hotmail.com[/email]
    > [url]http://www.nathansokalski.com/[/url]
    >

    Frankie Guest

  4. #3

    Default Re: Using two OleDbDataReaders at the same time

    Hi Nathan,

    Frankie is right - you'll have to have a connection per open datareader.
    BTW, .net 2/Sql server 2005 will have a feature called MARS which will allow
    many reads per connection.

    --
    Miha Markic [MVP C#]
    RightHand .NET consulting & development [url]www.rthand.com[/url]
    Blog: [url]http://cs.rthand.com/blogs/blog_with_righthand/[/url]

    "Nathan Sokalski" <njsokalski@hotmail.com> wrote in message
    news:%23g3hcSavFHA.3984@TK2MSFTNGP09.phx.gbl...
    >I have two OleDbDataReaders that I need to use at the same time. One of the
    >DataReadersis used inside a While loop. My code is as follows:
    >
    > While eventreader.Read()
    >
    > Response.Write(ControlChars.NewLine &
    > CStr(eventreader("eventdate")).PadRight(20) &
    > CStr(eventreader("eventname")).PadRight(32))
    >
    > cmdregistered.CommandText = "SELECT SUM(attending) AS total FROM
    > registered WHERE eventid=" & CStr(eventreader("eventid"))
    >
    > 'eventreader.Close()
    >
    > regreader = cmdregistered.ExecuteReader()
    >
    > regreader.Read()
    >
    > If regreader("total") Is System.DBNull.Value Then
    >
    > Response.Write("0" & ControlChars.NewLine)
    >
    > Else
    >
    > Response.Write(CStr(regreader("total")) & ControlChars.NewLine)
    >
    > End If
    >
    > regreader.Close()
    >
    > End While
    >
    >
    > When I use this code I recieve the following error:
    >
    >
    > There is already an open DataReader associated with this Connection which
    > must be closed first.
    >
    >
    > If I close the DataReader using the code which is commented out, I then
    > cannot reopen it. I did not have this problem when using an
    > OracleDataReader. The only solution I can think of would be to use a
    > DataSet rather than a DataReader for the first DataReader, but this would
    > make things less efficient. Does anyone know how to avoid this error?
    > Thanks.
    > --
    > Nathan Sokalski
    > [email]njsokalski@hotmail.com[/email]
    > [url]http://www.nathansokalski.com/[/url]
    >

    Miha Markic [MVP C#] Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139