Posted by :
ghel
lunes, 30 de junio de 2014
Aplicación Agenda - Parte 1.
Para realizar una aplicación que maneje una base de datos, se debe tener bien definida esta base de datos ya que cualquier alteración o modificación en esta traerá muchos inconvenientes y volver a codificar muchas partes del código.En este ejemplo vamos a usar una base de datos (bdAgenda) simple que tiene dos tablas, esta base de datos tiene las siguientes reglas del negocio, código y diagrama:
Reglas o Requerimientos de la Base de Datos
- ■ Se necesita guardar datos de las personas, estos datos son: nombre y apellido, sexo, dirección, teléfono, correo electrónico y observaciones.
- ■ Las personas deben estar clasificadas por tipo, por ejemplo: como amigos, familiares, compañeros, etc. de esta clasificación se necesita el nombre y un código que la caracterice.
Solución:
use master
go
drop database bdAgenda
go
create database bdAgenda
go
use bdAgenda
go
create table tTipo
(
idTipo char(4) primary key,
nombre varchar(80)
)
go
create table tPersona
(
idPersona int identity,
nombreapellido varchar(200),
sexo char(1),
direccion varchar(200),
telefono char(20),
email varchar(50),
observacion text,
fkTipo char(4) ,
foreign key (fkTipo) references tTipo(idTipo)
)
/*Insersión de datos*/
insert into tTipo values('FAM', 'Familiares')
insert into tTipo values('COMT', 'Compañeros de Trabajo')
insert into tTipo values('AMIG', 'Amigos')
insert into tTipo values('AMIX', 'Amigos de Siempre')
insert into tTipo values('COME', 'Compañeros de Estudio')
go
insert into tPersona values('Juan Perez', 'M', 'Av. La Rioja 6545', '97564654','jp@gmail.com','Ninguna','COME')
insert into tPersona values('Maria Rojas', 'F', 'Av. La Republica 4954', '878787878','mr@gmail.com','Ninguna','FAM')
insert into tPersona values('Jesus Lopez', 'M', 'Av. Belen 654', '6666666','jl@gmail.com','Ninguna','AMIX')
insert into tPersona values('Jose Guzman', 'M', 'Av. Estudiante', '123456789','jg@gmail.com','Ninguna','COME')
go
Reglas o Requerimientos de la Aplicación
La aplicación tiene una clasificación de personas, la cual hemos llamado Tipo, es decir, tipo de persona de nuestra agenda, esta tiene las siguientes reglas.
- ■ Se debe tener controles para ingresar los datos, estos datos son los necesarios para agregar datos a la base de datos, específicamente a la tabla tTipo que tiene los campos IdTipo y Nombre.
- ■ El formulario debe permitir eliminar un registro de la base de datos, mediante el IdTipo.
- ■ Se debe poder modificar los nombres de los tipos, teniendo como referencia siempre el IdTipo.
- ■ También se deberá tener un botón que permita listar todos los registro de la tabla tTipo.
Diseño e Implementación de los Requerimientos
Para estos requerimientos de esta parte de la aplicación, diseñamos el siguiente formulario:
El código de los botones será el siguiente:
private void btnInsertar_Click(object sender, EventArgs e)
{
/*Crear una cadena de conexion para sql*/
string conexion = @"Data Source=(local);Initial Catalog=bdAgenda;Integrated Security=True";
/*Creando el objeto para ejecutar script de sql*/
SqlCommand comando = new SqlCommand();
/*Crear un objeto para la conexion*/
SqlConnection cone = new SqlConnection(conexion);
/*Colocando el script sql al comando*/
comando.CommandText = "insert into tTipo values('"+txtIdTipo.Text+"', '"+txtNombre.Text+"')";
/*Colocando la conexion al comando*/
comando.Connection = cone;
/*Abrir conexion*/
cone.Open();
/*Ejecutando el comando*/
comando.ExecuteNonQuery();
/*Cerrar la conexion*/
cone.Close();
/*Limpiando los datos del DataGridView*/
dgvDatos.DataSource = null;
}
private void btnEliminar_Click(object sender, EventArgs e)
{
/*Crear una cadena de conexion para sql*/
string conexion = @"Data Source=(local);Initial Catalog=bdAgenda;Integrated Security=True";
/*Creando el objeto para ejecutar script de sql*/
SqlCommand comando = new SqlCommand();
/*Crear un objeto para la conexion*/
SqlConnection cone = new SqlConnection(conexion);
/*Colocando el script sql al comando*/
comando.CommandText = "delete from tTipo where idTipo = '"+txtIdTipo.Text+"'";
/*Colocando la conexion al comando*/
comando.Connection = cone;
/*Abrir conexion*/
cone.Open();
/*Ejecutando el comando*/
comando.ExecuteNonQuery();
/*Cerrar la conexion*/
cone.Close();
/*Limpiando los datos del DataGridView*/
dgvDatos.DataSource = null;
}
private void btnModificar_Click(object sender, EventArgs e)
{
/*Crear una cadena de conexion para sql*/
string conexion = @"Data Source=(local);Initial Catalog=bdAgenda;Integrated Security=True";
/*Creando el objeto para ejecutar script de sql*/
SqlCommand comando = new SqlCommand();
/*Crear un objeto para la conexion*/
SqlConnection cone = new SqlConnection(conexion);
/*Colocando el script sql al comando*/
comando.CommandText = "update tTipo set nombre = '"+txtNombre.Text+"' where idTipo='"+txtIdTipo.Text+"'";
/*Colocando la conexion al comando*/
comando.Connection = cone;
/*Abrir conexion*/
cone.Open();
/*Ejecutando el comando*/
comando.ExecuteNonQuery();
/*Cerrar la conexion*/
cone.Close();
/*Limpiando los datos del DataGridView*/
dgvDatos.DataSource = null;
}
private void btnListar_Click(object sender, EventArgs e)
{
/*Crear una cadena de conexion para sql*/
string conexion = @"Data Source=(local);Initial Catalog=bdAgenda;Integrated Security=True";
/*Crear un objeto tipo tabla de datos*/
DataTable tabla = new DataTable();
/*Creando el adaptador con la conexion y el comando*/
SqlDataAdapter oAdaptador = new SqlDataAdapter("select * from tTipo", conexion);
/*Llenando la tabla con datos de la consulta mediante el adaptador*/
oAdaptador.Fill(tabla);
/*Asignando el contenido del DataGridView con la tabla*/
dgvDatos.DataSource = tabla;
}
Nota Importante.
Ahora puedes ver como se puede ejecutar ordenes de SQL desde el CSharp, pero este código es muy poco práctico a la hora de hacer aplicaciones grandes, en la siguiente entrada veremos como unificamos este código para poder manejar objetos y así simplificar y mejorar nuestra aplicación.