Foros del Web » Programando para Internet » ASPX (.net) »

Error con DataReader C# , no me trae datos.

Estas en el tema de Error con DataReader C# , no me trae datos. en el foro de ASPX (.net) en Foros del Web. Tengo el siguiente codigo: Código: Id = Request.QueryString["id"]; SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText ...
  #1 (permalink)  
Antiguo 03/07/2009, 12:21
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Error con DataReader C# , no me trae datos.

Tengo el siguiente codigo:

Código:
Id = Request.QueryString["id"];
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString);
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandType = CommandType.Text;
        command.CommandText = "select campo1 from tabla where idcampo = 10";
        connection.Open();
        SqlDataReader rs = command.ExecuteReader();
        this.lblAviso.Text = rs["campo1"].ToString();
        rs.Close();
        command.Dispose();
        connection.Close();
La consulta sql efectiva trae un valor, pero me tira un error en la linea:
Código:
this.lblAviso.Text = rs["campo1"].ToString();
El error especifico es este:

"Error de lectura porque no hay datos."

pero no entiendo entonces como cargar un DataReader con un objeto command, alguien me puede dar una mano con esto??

Muchisimas gracias.
  #2 (permalink)  
Antiguo 03/07/2009, 12:46
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Error con DataReader C# , no me trae datos.

Cita:
Iniciado por @padawan@ Ver Mensaje
Tengo el siguiente codigo:

Código:
Id = Request.QueryString["id"];
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString);
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandType = CommandType.Text;
        command.CommandText = "select campo1 from tabla where idcampo = 10";
        connection.Open();
        SqlDataReader rs = command.ExecuteReader();
        this.lblAviso.Text = rs["campo1"].ToString();
        rs.Close();
        command.Dispose();
        connection.Close();
La consulta sql efectiva trae un valor, pero me tira un error en la linea:
Código:
this.lblAviso.Text = rs["campo1"].ToString();
El error especifico es este:

"Error de lectura porque no hay datos."

pero no entiendo entonces como cargar un DataReader con un objeto command, alguien me puede dar una mano con esto??

Muchisimas gracias.
Una consulta y por que no le asignas el QueryString en ves del valor 10, a lo mejor no hay ningun idcampo=10.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #3 (permalink)  
Antiguo 03/07/2009, 13:12
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Error con DataReader C# , no me trae datos.

Tiene razón BlueSkull primero prueba que tu query traiga resultados, lo otro es que siempre pero siempre antes de trabajar con un DataReader es preguntar si tiene Rows.

La propiedad es DataReader.HasRows

Lo otro es que el DataReader despues de extraerlo no le podrás leer el primer registro a menos que llames el método Read() primero:

SqlDataReader rs = command.ExecuteReader();
rs.Read(); // Esta línea llena el Row con los datos y se podrán accesar
this.lblAviso.Text = rs["campo1"].ToString();

Saludos,
  #4 (permalink)  
Antiguo 03/07/2009, 13:13
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Error con DataReader C# , no me trae datos.

Cita:
Iniciado por BlueSkull Ver Mensaje
Una consulta y por que no le asignas el QueryString en ves del valor 10, a lo mejor no hay ningun idcampo=10.
Quedo de una prueba que estaba haciendo, el valor que viene por querystring era 10, por eso se lo puse a mano para ver que pasaba.

Pero es lo mismo.
  #5 (permalink)  
Antiguo 03/07/2009, 13:27
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Error con DataReader C# , no me trae datos.

Muchas gracias dwaks, el problema era justamente que no ponia llamaba al metodo Read(); agregue solamente eso y anduvo, realmente muchas gracias.
  #6 (permalink)  
Antiguo 03/07/2009, 13:34
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Error con DataReader C# , no me trae datos.

Una observación adicional es que antes de traer el valor del DataReader verifiques si este tiene alguna información, eso lo haces con sqlDataReader.HasRows
  #7 (permalink)  
Antiguo 03/07/2009, 14:08
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Error con DataReader C# , no me trae datos.

Cita:
Iniciado por gedarufi Ver Mensaje
Una observación adicional es que antes de traer el valor del DataReader verifiques si este tiene alguna información, eso lo haces con sqlDataReader.HasRows

Ok entonces seria algo asi?:
Código:
if(rs.HasRows)
{
    rs.Read();
    var1 = rs["camp"].ToString();
}
else
{
//No hay registros
}
asi no?
  #8 (permalink)  
Antiguo 03/07/2009, 20:48
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Error con DataReader C# , no me trae datos.

asi mismo :)

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:02.