Ayuda con clase para atacar a BBDD en ASP.net

Buenos días!
Me estoy iniciando en el mundo de ASP.net, en principio programo con C# porque al venir de PHP me resulta más familiar :D
Os voy a poner una clase que he creado para conectar a una bbdd, ejecutar una sentencia y recoger los resultados. El caso es que me está dando error a la hora de realizar el Read() y no se porque. No me tengáis en cuenta las cagaditas que solo llevo una semana en .net :P
La clase (Class1.cs)
public class Conexion { //Creamos la clase
        //Definimos las variables a utilizar
        string Tuser;
        string Tpass;
        string Tserver;
        string Tbbdd;
        string ConString;
        object Conn;
        object command;
        object rs;
        //Este es el constructor de la clase
        public Conexion(string user, string pass, string server, string bbdd){
            Tuser = user;
            Tpass = pass;
            Tserver = server;
            Tbbdd = bbdd;
            ConString = "Provider=SQLOLEDB;Data Source=" + Tserver + ";UID=" + Tuser + ";PWD=" + Tpass + ";Initial Catalog=" + Tbbdd;
        }
        //Metodo para la conexion a la base de datos
        public object consulta(string sql) {
            OleDbConnection Conn = new OleDbConnection(ConString);
            OleDbCommand command = new OleDbCommand(sql, Conn);
            Conn.Open();
            OleDbDataReader rs = command.ExecuteReader();
            return rs;
        }
    }
El webform donde intento utilizarla (Default.aspx.cs)
Conexion conn = new Conexion("usuario", "password", "localhost", "desarrollo");
conn.consulta("SELECT * FROM usuarios");
object rs = conn.consulta();
while (rs.Read()){
           Response.Write(rs[0]);
}
Me dice que el objeto rs no admite Read(), supongo que porque no estoy haciendo algo bien a la hora de obtener los datos. Porque conectar y ejecutar la sentencia lo hace bien :P
Un saludo y mil gracias!

1 Respuesta

Respuesta
1
Primero debes conocer más sobre los objetos que vas a utilizar en tu clase.
Sabemos que en el mundo PHP los tipos de datos object son genéricos y puedes obtener sus métodos por solo conocerlos.
En .Net, la cosa cambia un poco. Acá todo tiene sus clase definida y va a depender mucho de los objetos a retornar por ejemplo cuando ejecutas el método ExecuteReader te retorna un objeto del tipo OleDbDataReader.
En fin, tu clase quedaría así:
public class Conexion { //Creamos la clase 
        //Definimos las variables a utilizar 
        string Tuser; 
        string Tpass; 
        string Tserver; 
        string Tbbdd; 
        string ConString; 
        OleDbConnection Conn; 
        OleDbCommand command; 
        OleDbDataReader rs; 
        //Este es el constructor de la clase 
        public Conexion(string user, string pass, string server, string bbdd){ 
            Tuser = user; 
            Tpass = pass; 
            Tserver = server; 
            Tbbdd = bbdd; 
            ConString = "Provider=SQLOLEDB;Data Source=" + Tserver + ";UID=" + Tuser + ";PWD=" + Tpass + ";Initial Catalog=" + Tbbdd; 
        } 
        //Método para la conexión a la base de datos
public OleDbDataReader consulta(string sql) {
            OleDbConnection Conn = new OleDbConnection(ConString); 
            OleDbCommand command = new OleDbCommand(sql, Conn); 
            Conn.Open(); 
            OleDbDataReader rs = command.ExecuteReader(); 
            return rs; 
        } 
    }
En el Webform: (Default.aspx.cs) 
Conexion conn = new Conexion("usuario", "password", "localhost", "desarrollo"); 
OleDbDataReader rs = conn.consulta("SELECT * FROM usuarios"); 
while (rs.Read()){ 
           Response.Write(rs[0]); 
}
Prueba y cualquier cosa no dudes en preguntar.
---------------------------------------
Saludos,
ME

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas