Underc0de

Programación General => C# - VB.NET => Mensaje iniciado por: Devilboy en Febrero 01, 2011, 04:23:25 PM

Título: Clase en c# para hacer consultas a Bases de datos
Publicado por: Devilboy en Febrero 01, 2011, 04:23:25 PM
Bueno esta clase se adapta a cualkier base de datos y a cualkier contenido

Código (csharp) [Seleccionar]

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) [Seleccionar]


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) [Seleccionar]

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
Título: Re:Clase en c# para hacer consultas a Bases de datos
Publicado por: Snifer en Febrero 24, 2011, 12:18:07 PM
O puedes crear un appConfig. para la conexion.
Título: Re:Clase en c# para hacer consultas a Bases de datos
Publicado por: _katze_ en Febrero 24, 2011, 08:16:12 PM
lo puedes hacer un ejemplo aver como es que piensas tu ?
Título: Re:Clase en c# para hacer consultas a Bases de datos
Publicado por: Devilboy en Febrero 24, 2011, 08:38:20 PM
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
Título: Re:Clase en c# para hacer consultas a Bases de datos
Publicado por: Snifer en Febrero 24, 2011, 11:07:07 PM
@_Katze_ exactamente me referia era a la conexion de la base de datos, mas cacho me pongo a postear :P

Saludos :P
Título: Re:Clase en c# para hacer consultas a Bases de datos
Publicado por: _katze_ en Febrero 25, 2011, 08:56:10 PM
copado tengo que probar esto...ya trto de subir algo aver quien lo hace mas rapido ! :P