data reader question

M

Mike P

I'm using 1 connection to open 3 separate data readers to read data into
3 data grids. However, when I try to use the 2nd reader it says that
the first reader must be closed. So I use Close() to close it and now
it says that 'Object reference not set to an instance of an object' on
that line of code. Can anybody help me out with this?

SqlConnection objConnection = new
SqlConnection(ConfigurationSettings.AppSettings["strConnectTransitTest"]
);

//Associated Call Types
string strAssocCallTypes;

strAssocCallTypes = "SELECT CallType AS 'Call Type', Remark AS
'Description' FROM CallTypeSwitch ";
strAssocCallTypes += "WHERE OSValue = " + intIncomingRoute;

//You must open the connection before populating the DataReader
objConnection.Open();

SqlCommand objCommand = new SqlCommand(strAssocCallTypes,
objConnection);

//Create/Populate the DataReader
SqlDataReader objDataReader = null;

dgAssocCallTypes.DataSource = objCommand.ExecuteReader();
dgAssocCallTypes.DataBind();

//can only have 1 data reader open at any one time in 1 connection
objDataReader.Close();


Cheers,

Mike
 
N

niceguy

It seems to me that you never create a SqlDataReader instance in the
objDataReader variable. You declare it, but in the next line, you pass the
result of ExecuteReader (which gives you back an instance of SqlDataReader)
to dgAssocCallTypes.DataSource. So objDataReader will still be null. To set
the datareader variable, you can do this:

objDataReader = objCommand.ExecuteReader();

Hope it helps...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top