Clase en c# para hacer consultas a Bases de datos

Iniciado por Devilboy, Febrero 01, 2011, 04:23:25 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Febrero 01, 2011, 04:23:25 PM Ultima modificación: Mayo 27, 2014, 09:45:37 PM por Expermicid
Bueno esta clase se adapta a cualkier base de datos y a cualkier contenido

Código: csharp

public class Mostrar
    {

        public int Consulta(string con, ListView Lista, string query)
        {

            MySqlConnection conexion;
            MySqlCommand comand;
            MySqlDataReader leer;
            ListViewItem lista;
            string[] strColumnas;
            object[] objColumnas;
            int nRegs=0;
            int nColumnas = 0;
            int n = 0;           

            try
            {
                conexion = new MySqlConnection(con);
                conexion.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
               
                return nRegs;
            }

           

            try
            {
                comand = new MySqlCommand(query,conexion);
                leer = comand.ExecuteReader();

            }
            catch (Exception ex)
            {
                           

                    MessageBox.Show(ex.Message);
                       
               
                conexion.Close();
                return nRegs;
            }

            nColumnas = leer.FieldCount;
            objColumnas = new object[leer.FieldCount];

            Lista.Items.Clear();
            Lista.FullRowSelect = true;
            Lista.View = View.Details;

            //colocar los nombres de columnas
            for (n=0; n < nColumnas; n++)
            {
                Lista.Columns.Add(leer.GetName(n));
            }


            //mostrar los datos
            if (leer.HasRows)
            {
                strColumnas = new string[nColumnas];
                nRegs = 0;

                while (leer.Read())
                {

                    nRegs++;
                    for (n = 0; n < nColumnas; n++)
                    {
                        if(!leer.IsDBNull(n))
                        {
                        strColumnas[n] = leer.GetValue(n).ToString();
                        }

                    }

                    lista = new ListViewItem(strColumnas);
                    Lista.Items.Insert(nRegs - 1, lista);
                }

            }

            //ajustar anchos de columnas
            for (n = 0; n < Lista.Columns.Count; n++)
            {

                Lista.Columns[n].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);

            }


            return nRegs;
        }





    }

y asegurense de usar estos namespaces

Código: csharp


using MySql.Data.MySqlClient;
using System.Windows.Forms;
y obviamente tener y hacer referencia al driver de mysql
eso lo pegan en una clase con el nombre ke kieran

y en el formulario principal crean un listview llamada listview1

y usan la clase asi:


Código: csharp

string datos="server=localhost;uid=root;pwd=su_pass;database=su_db";

string query = "su consulta select";

Su_Clase obj = new Su_Clase();

obj.Consulta(datos,listView1,query;

ese code de arriba lo ponen dentro del evento load o del evento click de un boton

y listo, se adapta a cualkier bd ke usen


ademas si la kieren usar para oracle, sql server o acces,

solo cambien las sentencias mysql.


por ejemplo en ves de usar MysqlConnection o MysqlCommand usan:

SqlConnection o SqlCommand

etc

salu2

Veo Una Energia Que Con Deceo de Justicia... Veo Mas Alla de LAs Letras Escritas...
Veo Un Hacktivismo Puro... Nacido De lo Mas Profundo De un Corazon..
Con La Mirada Firme En Defender Mis Ideales...


O puedes crear un appConfig. para la conexion.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



lo puedes hacer un ejemplo aver como es que piensas tu ?

la ventaja de esta clase es ke se adapta a cualkier base de datos y a cualkier consulta

no importa si está en acces, mysql o sql server

y no importa si su tabla tiene 1 o n campos, es autoajustable

a lo ke se refiere snifer creo ke es la forma de poner los datos de la bd, y se puede hacer otra clase statica para los datos

Veo Una Energia Que Con Deceo de Justicia... Veo Mas Alla de LAs Letras Escritas...
Veo Un Hacktivismo Puro... Nacido De lo Mas Profundo De un Corazon..
Con La Mirada Firme En Defender Mis Ideales...


@_Katze_ exactamente me referia era a la conexion de la base de datos, mas cacho me pongo a postear :P

Saludos :P
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



copado tengo que probar esto...ya trto de subir algo aver quien lo hace mas rapido ! :P