You are on page 1of 12

EJEMPLOS CON BASES DE DATOS

El paso previo antes de comenzar con la creación de una aplicación con bases de datos
es tener creada la misma o en tal caso crearla; existen diferentes maneras de hacerlo
pero en este caso utilizaremos SQL Server Management Studio:

Abra la aplicación y entonces cree una base de datos con por lo menos una
tabla para poder acceder, modificar, eliminar e insertar registros en dichas
tablas.

Lo primero que debemos hacer antes de comenzar a realizar la aplicación es


seleccionar el origen de datos para poder obtener la cadena de conexión de la base de
datos con la que vamos a trabajar.
Y para esto escogemos el tipo de origen de datos que vamos a utilizar y seleccionamos
el tipo de origen de datos, en nuestro caso seleccionamos Microsoft SQL Server.
Después de esto nos podremos conectar con el servidor de SQL Server y escoger la
base de datos con la que queremos trabajar.
Consultas en C#

Para este ejemplo debemos agregar 2 botones (Consultar, Salir) y 4 cajas de texto
para mostrar los datos.

Agregamos una referencia al formulario para poder acceder a las clases genéricas
con las que podamos hacer todo tipo de operación con la Base de Datos.

Declaramos un SqlCommand, un SqlDataReader y SqlConnection que son los objetos


con los que se va a acceder a los datos.
SqlCommand consulta;
SqlDataReader lector;
SqlConnection cn = new SqlConnection("Data
Source=.\\sqlexpress;Initial Catalog=Inventario;Integrated
Security=True");

Escribimos el siguiente código


private void cmdConsultar_Click(object sender, EventArgs e)
{
double num;
num = Convert.ToDouble(tbId.Text);
consulta = new SqlCommand("SELECT
idcli,nomcli,dircli,telcli FROM cliente WHERE idcli="+num, cn);
lector = consulta.ExecuteReader();
while(lector.Read())
{
tbId.Text = Convert.ToString(lector["idcli"]);
tbNombre.Text=Convert.ToString( lector["nomcli"]);
tbDireccion.Text = Convert.ToString(lector["dircli"]);
tbTelefono.Text = Convert.ToString(lector["telcli"]);
}
lector.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
cn.Open();
}

private void cmdSalir_Click(object sender, EventArgs e)


{
cn.Close();
Close();
}

De igual manera se podría realizar una consulta más consistente de acuerdo a las
necesidades del sistema, pero en este caso lo hemos de forma fácil y practica.

Modificar, insertar, eliminar registros

Ahora vamos a realizar un ejemplo utilizando objetos que vienen en el Visual Studio de
manera gráfica o con asistentes:
Primero arrastramos un objeto SqlDataAdapter al formulario donde
inmediatamente nos aparecerá el asistente con el cual seleccionaremos el
origen de Datos y creando una sentencia SELECT SQL automáticamente se
generarán las instrucciones INSERT, DELETE, UPDATE.

Después automáticamente se nos creará el objeto SqlConnection


automáticamente

Ahora Arrastramos un control DataGridView y un botón desde el cuadro de


herramientas hacia el formulario.
Generamos un conjunto de Datos, se puede realizar desde el SqlDataAdapter o
en el Menú Datos. En este crearemos un Dataset que es un conjunto de Datos
y mientras el asistente escogeremos la tabla o tablas con las que queremos
trabajar.

Ahora en la propiedad DataSource escogeremos el origen de los Datos que


vamos a mostrar, en este caso será el Dataset que creamos; Después En la
propiedad DataMember escogeremos la tabla que se va a mostrar en el
DataGridView.
Añadimos el siguiente código en el formulario para cargar los datos.
private void Form2_Load(object sender, EventArgs e)
{
sqlDataAdapter1.Fill(inventarioDataSet);
}

Añadimos el codigo que permita revisar si hubo algun tipo de modificaion o


cambio en el Dataset y este lo actualizará
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (inventarioDataSet.HasChanges())
{
try
{
sqlDataAdapter1.Update(inventarioDataSet);
MessageBox.Show("Origen de Datos Actualizado");
}
catch (Exception ex){
MessageBox.Show("Ocurrió un Error\n" +
ex.Message);

}
}
}

Cabe recalcar que si se quiere utilizar este código para actualizar de forma
inmediata habria que buscar el evento adecuado para esta accion. En este caso el
ejemplo es una practica de una actualizacin en lote porque actualiza los datos una
vez que el formulario se descarga.
Ahora vamos a ralizar un ejemplo con teoremas avanzados pero con un codigo
mucho mas simple:

1.) Agregrar 6 Button(Buscar, Nuevo, Editar, Eliminar, Grabar, Salir) y 5


TextBox con sus respectivos Label(Id,Nombre,Dirección,Teléfono).

2.) Ahora agregue un DataSet (Conjunto de datos): Para esto valla al panel de
Orígenes de Datos y siga los pasos descritos por el asistente y escoja las
tablas con los que desea trabajar.

3.) Ahora vamos a crear los procedimientos almacenados que van a realizar las
operaciones de este formulario de mantenimiento, y lo puede hacer de dos
maneras:
Desde el Explorador de Servidores, donde tendrá que programar
directamente todo:
Desde el Dataset: Haga doble clic en el Dataset que creó y
aparecerán todas las tablas que pertenezcan a ese conjunto de datos.
Ahora haga clic derecho en la parte inferior de la tabla y escoja
Agregar consulta.

Seleccione Crear Procedimiento almacenado y despues el tipode


consulta que se va a generar
Escriba la sentencia correspondiente a lo que seleccionó
anteriormente y finalmente escoja el nombre del Procedimineto
almacenado que se va a guardar en la Base de Datos y con el que se
va a referir en código desde la aplicación.
4.) Arrastre los objetos InventarioDataset y clienteTableAdapter al
formulario.

5.) Llamar a los procedimientos almacenados según sea el caso y siguiendo una
lógica adecuada en el formulario para que la aplicación funcione
correctamente.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Aplicacion_prueba
{
public partial class MantenimientoClientes : Form
{
public MantenimientoClientes()
{
InitializeComponent();
}
bool Editando;
string criterio;
SqlCommand consulta;
SqlDataReader lector;
SqlConnection cn = new SqlConnection("Data
Source=.\\sqlexpress;Initial Catalog=Inventario;Integrated
Security=True");
private void cmdSalir_Click(object sender, EventArgs e)
{
Close();
cn.Close();
}
private void btnNuevo_Click(object sender, EventArgs e)
{
Editando = false;
BorrarTextos();
HabilitaBotones(false);
btnBuscar.Enabled = false;
}
private void btnEditar_Click(object sender, EventArgs e)
{
Editando = true;
criterio = tbId.Text;
HabilitaBotones(false);
btnGrabar.Enabled = true;
}
private void btnEliminar_Click(object sender, EventArgs e)
{
clienteTableAdapter.EliminarCliente(tbId.Text);
MessageBox.Show("Cliente
Eliminado","FACCI",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
private void btnGrabar_Click(object sender, EventArgs e)
{
try
{
if (Editando == true)
{
clienteTableAdapter.ActualizarCliente(tbId.Text,
tbNombre.Text,
tbDireccion.Text,
Convert.ToDecimal(tbTelefono.Text),criterio);
}
else
{
clienteTableAdapter.InsertarCliente(tbId.Text,
tbNombre.Text,
tbDireccion.Text,
Convert.ToDecimal(tbTelefono.Text));
}
MessageBox.Show("Datos Guardados correctamente",
"FACCI", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Hubo un
Error...\n"+ex.Message,"FACCi",
MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
HabilitaBotones(true);
btnBuscar.Enabled = true;
BorrarTextos();
}

private void MantenimientoClientes_Load(object sender,


EventArgs e)
{
clienteTableAdapter.Fill(inventarioDataSet.cliente);
cn.Open();
HabilitaBotones(false);
btnNuevo.Enabled = true;
}
public void HabilitaBotones(bool estado)
{
btnNuevo.Enabled = estado;
btnEditar.Enabled = estado;
btnEliminar.Enabled = estado;
}
public void BorrarTextos()
{
tbId.Text = "";
tbNombre.Text = "";
tbDireccion.Text = "";
tbTelefono.Text = "";
tbId.Focus();
}
private void tbTelefono_Leave(object sender, EventArgs e)
{
btnGrabar.Enabled = true;
}

private void btnBuscar_Click(object sender, EventArgs e)


{
try
{
consulta = new SqlCommand("SELECT
idcli,nomcli,dircli,telcli FROM cliente WHERE idcli=" + tbId.Text,
cn);
lector = consulta.ExecuteReader();
while (lector.Read())
{
tbId.Text = Convert.ToString(lector["idcli"]);
tbNombre.Text=Convert.ToString( lector["nomcli"]);
tbDireccion.Text =
Convert.ToString(lector["dircli"]);
tbTelefono.Text =
Convert.ToString(lector["telcli"]);
}
lector.Close();
btnBuscar.Enabled = false;
HabilitaBotones(true);
}
catch(Exception ex)
{
MessageBox.Show("Hubo un Error...\n" + ex.Message,
"FACCI",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
BorrarTextos();
}
}
}
}

You might also like