Mostrando entradas con la etiqueta mostrar campos de base de datos en listbox. Mostrar todas las entradas
Mostrando entradas con la etiqueta mostrar campos de base de datos en listbox. Mostrar todas las entradas

martes, 3 de diciembre de 2013

Ejemplo de consulta a base de datos de SQL Server en C#

NOTA: el siguiente ejemplo se realizó en Visual Studio 2012 y SQL Server 2012.


Código de la base de datos

create database Prueba
go
use Prueba
go
create table Menores
(
ID_Menores int primary key identity(1,1),
Nombre_M varchar(30) not null,
Apellp_M varchar(20) not null,
Apellm_M varchar(20) not null,
Sexo_M char(1) not null,
Fecha_Reg_M date not null
)

insert into Menores(Nombre_M,Apellp_M,Apellm_M,Sexo_M,Fecha_Reg_M)values('pepito','pica','papas','M','02-12-13')
insert into Menores(Nombre_M,Apellp_M,Apellm_M,Sexo_M,Fecha_Reg_M)values('Miguel','Hidalgo',' y Costilla','M','02-12-13')
insert into Menores(Nombre_M,Apellp_M,Apellm_M,Sexo_M,Fecha_Reg_M)values('Benito','Juárez','García','M','02-12-13')
insert into Menores(Nombre_M,Apellp_M,Apellm_M,Sexo_M,Fecha_Reg_M)values('Josefa','Ortiz',' de Domínguez','F','02-12-13')
insert into Menores(Nombre_M,Apellp_M,Apellm_M,Sexo_M,Fecha_Reg_M)values('María','la del','Barrio','F','02-12-13')

Diseño de la aplicación



Código de la aplicación
Se puede reducir el código pero para la explicación se muestra de la siguiente manera:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;/*libreríapara manejo de SQL*/

namespace textenlabel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /*variables globales*/
        string cadenaconexion = @"Data Source=HUGUITO;Initial Catalog=Prueba;Integrated Security=True";
        /*método para la consulta individual, recibe como parámetro el id que ingresa el usuario
         en el TextBox txt_id, esto para traer un registro en específico*/
        public void consulta_individual(int id)
        {
           /*objeto de conexión*/
            SqlConnection con = new SqlConnection();
            /* asignamos la cadena de conexión*/
            con.ConnectionString = cadenaconexion;
            /*objeto para el comando*/
            SqlCommand cmd = new SqlCommand();
            /*asignamos el comando de texto (consulta, puede ser select, insert, update o delete), en este caso un select
              que trae los campos de un sólo registro de la tabla Menores, así ejemplificamos la consulta individual*/
            cmd.CommandText = "select Nombre_M,Apellp_M,Apellm_M from Menores where ID_Menores="+id+"";
            /*especificamos el tipo de comando, en este caso de texto, puede ser del tipo procedimiento almacenado*/
            cmd.CommandType = CommandType.Text;
            /*asignamos al comando el objeto de conexión*/
            cmd.Connection = con;
            /*declaramos un obeto datareader, para leer sobre la base de datos*/
            SqlDataReader rdr;
            /*abrimos la conexión con la base de datos*/
            con.Open();
            /*asignamos al datareader el comando y executamos la lectura*/
            rdr = cmd.ExecuteReader();
            /*con un if y else condicionamos la lectura*/
            if (rdr.Read())
            {
                /*si lee mostramos el resultado de la consulta en el label lb_consulta_individual*/
                lb_consulta_individual.Text = rdr.GetString(rdr.GetOrdinal("Nombre_M")) + " " + rdr.GetString(rdr.GetOrdinal("Apellp_M")) + " " + rdr.GetString(rdr.GetOrdinal("Apellm_M"));
            }
                /*sino lee mostramos un mensaje*/
            else lb_consulta_individual.Text = "No se encontró la persona";
            /*cerramos la conexión*/
            con.Close();
           
        }
        /*método para la consulta múltiple, para hacerlo fácil de comprender dejamos los mismos nombres los objetos de conexión */
        public void consulta_multiple()
        {
            /*objeto de conexión*/
            SqlConnection con = new SqlConnection();
            /* asignamos la cadena de conexión*/
            con.ConnectionString = cadenaconexion;
            /*objeto para el comando*/
            SqlCommand cmd = new SqlCommand();
            /*asignamos el comando de texto (consulta, puede ser select, insert, update o delete),
             en este caso un select que trae todos los campos de la tabla Menores*/
            cmd.CommandText = "select Nombre_M,Apellp_M,Apellm_M from Menores";
            /*especificamos el tipo de comando, en este caso de texto, puede ser del tipo procedimiento almacenado*/
            cmd.CommandType = CommandType.Text;
            /*asignamos al comando el objeto de conexión*/
            cmd.Connection = con;
            /*declaramos un obeto datareader, para leer sobre la base de datos*/
            SqlDataReader rdr;
            /*abrimos la conexión con la base de datos*/
            con.Open();
            /*asignamos al datareader el comando y executamos la lectura*/
            rdr = cmd.ExecuteReader();
            /*Limpiamos el ListBox*/
            lbox_consulta_multiple.Items.Clear();
            /*con el siguiente ciclo while mientras lea en la base de datos traemos el registro*/
           while(rdr.Read())
            {
               /*agregamos al ListBox cada registro que lee en la base de datos*/
                lbox_consulta_multiple.Items.Add(rdr.GetString(rdr.GetOrdinal("Nombre_M")) + " " + rdr.GetString(rdr.GetOrdinal("Apellp_M")) + " " + rdr.GetString(rdr.GetOrdinal("Apellm_M")));
            }
            /*cerramos la conexión*/
            con.Close();

        }
        /*evento Click del botón btn_consulta_individual*/
        private void btn_consulta_individual_Click(object sender, EventArgs e)
        {
            /*llamamos al método que realiza la consulta individual,
             * le pasamos como parámetro el id que ingresa el usuario en el TextBox txt_id*/
            consulta_individual(Convert.ToInt32(txt_id.Text));
        }
        /*evento Click del botón btn_consulta_multiple*/
        private void btn_consulta_multiple_Click(object sender, EventArgs e)
        {
             /*llamamos al método que realiza la consulta múltiple*/
            consulta_multiple();
        }
    }
}




Pruebas de la aplicación