I'm running an if else statement off of a datareader to query table data and activate/de-activate some controls on a page. I implemented a using statement to automatically close the connection and the reader when I close the block, but I still get the reader is closed error on each of my if else statements. What's missing? Code below:
string comnt = "SELECT StatusId FROM Submission WHERE SubmissionId =" + x;
using (SqlConnection editConn = new SqlConnection(connectionString))
{
editConn.Open();
using (SqlCommand statCmd = new SqlCommand(comnt, editConn))
{
SqlDataReader dr = statCmd.ExecuteReader();
dr.Read();
if (dr.GetInt32(0) > 0)
{
PanelComment.Visible = true;
PanelQuote.Visible = false;
LnbFid.Visible = false;
LnbCrim.Visible = false;
LnbEo.Visible = false;
LnbEpl.Visible = false;
LnbNot.Visible = false;
LnbPriv.Visible = false;
LnbPub.Visible = false;
}
else
{
PanelComment.Visible = false;
}
}
Try this way:
if (dr.HasRows)
{
while (dr.Read())
{
if (dr.GetInt32(0) > 0)
{
...
}
}
}
For more info, check this page: