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

Ayuda con SQLDATAREADER C#

Estas en el tema de Ayuda con SQLDATAREADER C# en el foro de ASPX (.net) en Foros del Web. Hola... Tengo un problema que no sé como resolver. Miren tengo un programa hecho en visualbasic.net donde tengo este código para poder rescatar datows de ...
  #1 (permalink)  
Antiguo 23/06/2009, 15:29
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Exclamación Ayuda con SQLDATAREADER C#

Hola...

Tengo un problema que no sé como resolver.

Miren tengo un programa hecho en visualbasic.net donde tengo este código para poder rescatar datows de una db.

Código:
Public Function getExternalCompany() As Collection
        SQL = "Select COMPANY,DESCRIPTION FROM AC_EXTERNAL_COMPANY"
        Comando.Connection = conectar()
        Comando.CommandText = SQL
        'Comando.Connection.Open()
        rs = Comando.ExecuteReader()
        Dim lista As New Collection
        Dim com As New compExterna
        While rs.Read
            com.constructor(rs("COMPANY"), rs("DESCRIPTION"))
            lista.Add(com.getDescripcion)
        End While
        Comando.Connection.Close()
        getExternalCompany = lista
    End Function
este método lo que hace es retornar una lista (collection) del tipo compañía, con dos parámetros pasados al constructor (nombre y descripcion)

quiero hacer eso en c#... no me funciona, mi problema hasta el momento está en el while y en que no se como retornar una lista de objetos.

Porfavor! agradecería demasiado su ayuda!

GRACIAS!
  #2 (permalink)  
Antiguo 23/06/2009, 20:26
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda con SQLDATAREADER C#

Estimado, te dejo estos ejemplos que hacen lo mismo pero de diferente modo:

Código PHP:
public int funcionsqldr1 (string num)
    {
        
Conexion con1 = new Conexion();
        
con1.Conectar();

        
string sql1 "SELECT campo1, campo2, camp.... FROM tabla1 WHERE campo1 = @parametro";
        
SqlCommand cmd1 = new SqlCommand(sql1con1.get_conecction());
        
cmd1.Parameters.AddWithValue("@parametro"num);
        
SqlDataReader dr cmd1.ExecuteReader(CommandBehavior.CloseConnection);

        while (
dr.Read())
        {
            
this.num1 dr.GetInt32(0);
            
this.num2 this.num1 1;
        }
        
dr.Close();
        
con1.Desconectar();
        return 
num2;
    }

public 
Int32 funcionsqldr2 (string num)
    {
        
Conexion con2 = new Conexion();
        
con2.Conectar();

        
string sql2 "SELECT campo1, campo2, camp.... FROM tabla1 WHERE campo1 = @parametro";
        
SqlCommand cmd2 = new SqlCommand(sql2con2.get_conecction());
        
cmd2.Parameters.AddWithValue("@parametro"  ,   num);

        
using (SqlDataReader dr3 cmd2.ExecuteReader())
        {
            while(
dr3.Read())
                
num dr3.GetInt32(0);
        }
        
con2.Desconectar();
        return 
nume;
    } 
Arreglalo a tu requerimiento, cualquier duda consulta.
Adios.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #3 (permalink)  
Antiguo 24/06/2009, 07:06
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con SQLDATAREADER C#

Gracias por tu respuesta...

num = dr3.GetInt32(0); <-- Ese cero "0" que aparece ahí a que se refiere?, que es lo que estás guardando finalmente en num?.

Gracias nuevamente.
  #4 (permalink)  
Antiguo 24/06/2009, 11:34
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda con SQLDATAREADER C#

Cita:
Iniciado por pyroCL Ver Mensaje
Gracias por tu respuesta...

num = dr3.GetInt32(0); <-- Ese cero "0" que aparece ahí a que se refiere?, que es lo que estás guardando finalmente en num?.

Gracias nuevamente.
Estimado, te explico, el SqlDataReader como dices devuelve una coleccion y esa coleccion esta compuesta por indices, por ejemplo son 5 registros y cada uno tiene un indice y el SqlDataReader toma la numeración empezando del 0 al 4, por eso que el primer indice de la coleccion toma el valor 0.

Espero que se me haya entendido.
Adios.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #5 (permalink)  
Antiguo 25/06/2009, 08:33
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con SQLDATAREADER C#

Muchas gracias por tu ayuda... vuelvo a molestar.

Hice mi código en c#, pero al hacerlo correr no me retorna ningún dato.

Este es mi código:

Variables:
Código:
  static SqlConnection con = new SqlConnection();
        static SqlCommand Comando = new SqlCommand();
        static SqlDataReader rs;
        static string SQL;
        static string respuesta;
Método:
Código:
public static string getNombre(string codigo)
        {
            
            SQL = "SELECT nombre FROM prueba WHERE codigo = '" + codigo + "'";
            Comando.Connection = conectar();
            Comando.CommandText = SQL;
        
            rs = Comando.ExecuteReader();
            while (rs.Read())
            {
            respuesta = (string)rs["nombre"];
            }
            con.Close();
            return respuesta;
        }
este método lo llamo y le entrego un código, y la idea es que me retorne el nombre que esta asociado a ese código.

la estructura de la tabla "prueba" es:

codigo varchar(20) PK
nombre varchar(20)

Ayuda, ese código en vb funciona perfectamente.

Gracias!
  #6 (permalink)  
Antiguo 25/06/2009, 12:58
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda con SQLDATAREADER C#

Estimado, creo que puede ser el reader, fijate:

Código PHP:

// pon el CommandBehavior.CloseConnection por si acaso.
SqlDataReader rs   cmd1.ExecuteReader(CommandBehavior.CloseConnection);

while(
rs.Read())
{
    
// tienes que poner el indice en 0 (primer registro), o sea de esta forma, si es una coleccion: 
    
respuesta rs.GetString(0);
    
// respuesta = (string)rs["nombre"]; el (string) no es necesario sacalo.
}
 
rs.Close(); // cierras conexion del reader.

con1.Desconectar(); // cierras la conexion.

return respuesta// y retornas 

Código PHP:
rs Comando.ExecuteReader();
while (
rs.Read())
{
respuesta = (string)rs["nombre"];
}
con.Close();
return 
respuesta;

Te paso mi conexion para que te ordenes un poco, buscala en mi blog.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #7 (permalink)  
Antiguo 25/06/2009, 12:59
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con SQLDATAREADER C#

Solucionado...


El último código que puse está bueno... mi error estaba en que le estaba pasando un string vacío por parámetro... JAJAJ

... por si alguien lo necesita, ese método recibe un string por parámetro y retorna un dato, en este caso el nombre de ese código recibido por parámetro.


Gracias por la ayuda BlueSkull...
  #8 (permalink)  
Antiguo 25/06/2009, 13:11
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda con SQLDATAREADER C#

Cita:
Iniciado por pyroCL Ver Mensaje
Solucionado...


El último código que puse está bueno... mi error estaba en que le estaba pasando un string vacío por parámetro... JAJAJ

... por si alguien lo necesita, ese método recibe un string por parámetro y retorna un dato, en este caso el nombre de ese código recibido por parámetro.


Gracias por la ayuda BlueSkull...
Entonces le dices que solo tome el campo nombre del registro filtrado por el codigo, entonces es solo un registro que te llega no mas.

Código PHP:
while (rs.Read())
{
respuesta = (string)rs["nombre"];
}
con.Close();
return 
respuesta
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #9 (permalink)  
Antiguo 06/07/2009, 09:33
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con SQLDATAREADER C#

gracias ppor todo...
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 03:25.