Forum Moderators: open

Message Too Old, No Replies

DataReader Error. Can't Return Db Records

ExecuteReader: Connection property has not been initialized.

         

ASPhopeful

11:39 am on Sep 12, 2004 (gmt 0)

10+ Year Member



Hi All,

I am trying to return some rows from an access database. However, I am getting the error

-----------
ExecuteReader: Connection property has not been initialized.
-----------

on the line

-----------
Dim SingleDataReader As OleDbDataReader = SingleComm.ExecuteReader
-----------

I have enclosed the code I am using below in case someone can help me.

Many Thanks
Helen

-----------

Dim MusicDbConn As OleDbConnection
MusicDbConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Birthday-Music.mdb") & ";")
MusicDbConn.Open

Dim SingleComm As OleDbCommand
Dim AlbumComm As OleDbCommand
Dim CSingleComm As OleDbCommand
Dim CAlbumComm As OleDbCommand

SingleComm = New OleDbCommand("SELECT TOP 1 * FROM Singles WHERE ChartDate < " & DOBEnteredDT & " ORDER BY ChartDate desc")
AlbumComm = New OleDbCommand("SELECT TOP 1 * FROM Album WHERE ChartDate < " & DOBEnteredDT & " ORDER BY ChartDate desc")
CSingleComm = New OleDbCommand("SELECT TOP 1 * FROM ChristmasSingles WHERE Year = " & DatePart("yyyy", DOBEnteredDT))
CAlbumComm = New OleDbCommand("SELECT TOP 1 * FROM ChristmasAlbums WHERE Year = " & DatePart("yyyy", DOBEnteredDT))

Dim SingleDataReader As OleDbDataReader = SingleComm.ExecuteReader
SingleDataGrid.DataSource = SingleDataReader
SingleDataGrid.DataBind

Dim AlbumDataReader As OleDbDataReader = AlbumComm.ExecuteReader
AlbumDataGrid.DataSource = AlbumDataReader
AlbumDataGrid.DataBind

Dim CSingleDataReader As OleDbDataReader = CSingleComm.ExecuteReader
CSingleDataGrid.DataSource = CSingleDataReader
CSingleDataGrid.DataBind

Dim CAlbumDataReader As OleDbDataReader = CAlbumComm.ExecuteReader
CAlbumDataGrid.DataSource = CAlbumDataReader
CAlbumDataGrid.DataBind

MusicDbConn.Close

ASPhopeful

1:37 pm on Sep 12, 2004 (gmt 0)

10+ Year Member



Hi All,

I've solved the problem. I've added ", MusicDbConn" to the commands so that it reads:

----------------
SingleComm = New OleDbCommand("SELECT TOP 1 * FROM Singles WHERE ChartDate < " & DOBEnteredDT & " ORDER BY ChartDate desc", MusicDbConn)
AlbumComm = New OleDbCommand("SELECT TOP 1 * FROM Album WHERE ChartDate < " & DOBEnteredDT & " ORDER BY ChartDate desc", MusicDbConn)
CSingleComm = New OleDbCommand("SELECT TOP 1 * FROM ChristmasSingles WHERE Year = " & DatePart("yyyy", DOBEnteredDT), MusicDbConn)
CAlbumComm = New OleDbCommand("SELECT TOP 1 * FROM ChristmasAlbums WHERE Year = " & DatePart("yyyy", DOBEnteredDT), MusicDbConn)
----------------

However, I am now getting the error

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

Does anyone know how I can fix this?
Thanks
Helen.

ASPhopeful

1:46 pm on Sep 12, 2004 (gmt 0)

10+ Year Member



Scrap that. I've close the DataReaders. All OK now.

Helen