Estoy ejecutando una instrucción if else de un lector de datos para consultar los datos de la tabla y activar/desactivar algunos controles en una página. Implementé una instrucción de uso para cerrar automáticamente la conexión y el lector cuando cerré el bloque, pero todavía obtengo el error de cierre del lector en cada una de mis sentencias if else. ¿Qué falta? Código de abajo:¿Intento no válido de llamar a MetaData cuando el lector está cerrado?
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;
}
}
¿está seguro de que el lector devuelve las filas? Tiene la propiedad "HasRows" para verificar antes de leer – vityanya
¿qué representa 'x'? ¿Es una cadena que representa una cadena? ¿un número? Deberías acostumbrarte a usar parámetros, concatenar cadenas para construir consultas SQL es peligroso, especialmente si 'x' depende del usuario. – InBetween
El campo que se está consultando no aceptará valores nulos, por lo que definitivamente devuelve las filas @vityanya, y @InBetween, 'x' es una cadena utilizada para almacenar el ID de envío jqueried en la página. –