Posted by :
ghel
jueves, 3 de julio de 2014
Aplicación Agenda - Parte 2.
Ya hemos visto la forma de dar mantenimiento a una tabla, ahora haremos lo mismo con la tabla tPersona, la diferencia esta en que ahora usaremos un objeto el cual facilitará el trabajo y optimizará nuestro código.La clase consta de dos atributos, uno es la cadena de conexión y la otra es una variable de tipo texto para obtener los mensajes de validez o error del comando. La clase tiene dos métodos, uno llamado EjecutarComando para ejecutar ordenes que no sean consultas, es decir, ordenes insert, update, delete, etc.
el otro método se llama EjecutarConsulta que lo usaremos para cualquier orden que devuelva datos de tipo consulta, es decir, que da resultados con select.
public class CDatos
{
string cadenaDeConexion = @"Data Source=(local);Initial Catalog=bdAgenda;Integrated Security=True";
public string Mensaje;
public bool EjecutarComando(string textoSql)
{
try
{
//Para la cadena de conexión
string sCnn = cadenaDeConexion;
//Creamos la conexión
SqlConnection cnn = new SqlConnection(sCnn);
//Texto del comando insert
string iTexto = textoSql;
//Creamos el comando con su texto y conexión
SqlCommand cmd = new SqlCommand(iTexto, cnn);
cmd.CommandType = CommandType.Text;
//abrimos la conexión y ejecutamos el comando
cnn.Open();
//Ejecutamos el comando sql
cmd.ExecuteNonQuery();
//Cerramos la conexión
cnn.Close();
//Agregamos el Mensaje de Correcto
Mensaje = "0: Comando realizado con éxito...";
return true;
}
catch
{
Mensaje = "0: Error en Conexión con la base de datos o el comando de SqlServer";
return false;
}
}
public DataTable EjecutarConsulta(string textoSQL)
{
try
{
//Creamos la cadena de conexion
string sCnn = cadenaDeConexion;
//Creamo el comando de sql para listar
string sSel = textoSQL;
//Creamos el adaptador que capturara los datos
SqlDataAdapter da = new SqlDataAdapter(sSel, sCnn);
//Creamos un data table que contendra los datos
DataTable dt = new DataTable();
//Llenamos el data table con el adaptador
da.Fill(dt);
//Colocando Mensaje
Mensaje = "0: Consulta realizada con éxito...";
return dt;
}
catch
{
Mensaje = "0: Error en Conexión o Consulta de SqlServer...";
return null;
}
}
}
Requerimientos de la Aplicación
Diseño y Codificación de la Aplicación
Codificación de los Botones y el Formulario frmPersona
private void FrmPersona_Load(object sender, EventArgs e)
{
//Crear el objeto
CDatos oDa = new CDatos();
//Crear la tabla de datos
DataTable oTabla = new DataTable();
//Ejecutar el comando
oTabla = oDa.EjecutarConsulta("select * from ttipo");
//Asignar la tabla al combo
cboTipo.DataSource = oTabla;
//Indicar los elementos visibles
cboTipo.DisplayMember = oTabla.Columns[1].Caption.ToString();
//Indicar los valores usables del combo
cboTipo.ValueMember = oTabla.Columns[0].Caption.ToString();
}
private void btnInsertar_Click(object sender, EventArgs e)
{
try
{
//Crear el objeto
CDatos oDa = new CDatos();
//Creando el comando insert
string textoSQL = "insert into tPersona values('" + txtNombre.Text + "', '" + cboSexo.SelectedItem.ToString() + "', '" + txtDireccion.Text + "', '" + txtTelefono.Text + "','" + txtEmail.Text + "','" + txtObservacion.Text + "','" + cboTipo.SelectedValue.ToString() + "')";
//Ejecutando el comando
oDa.EjecutarComando(textoSQL);
//Mostrando mensaje
MessageBox.Show(oDa.Mensaje);
}
catch
{
MessageBox.Show("Los datos no estan completos...");
}
}
private void btnEliminar_Click(object sender, EventArgs e)
{
//Crear el objeto
CDatos oDa = new CDatos();
//Creando el comando delete
string textoSQL = "delete from tPersona where idPersona = " + txtIdPersona.Text + "";
//Ejecutando el comando
oDa.EjecutarComando(textoSQL);
//Mostrando mensaje
MessageBox.Show(oDa.Mensaje);
}
private void btnModificar_Click(object sender, EventArgs e)
{
try
{
//Crear el objeto
CDatos oDa = new CDatos();
//Creando el comando delete
string textoSQL = "update tPersona set nombreapellido = '" + txtNombre.Text + "', sexo='" + cboSexo.SelectedItem.ToString() + "', direccion='" + txtDireccion.Text + "',telefono='" + txtTelefono.Text + "',email='" + txtEmail.Text + "',observacion='" + txtObservacion.Text + "', fkTipo='" + cboTipo.SelectedValue.ToString() + "' where idPersona=" + txtIdPersona.Text + "";
//Ejecutando el comando
oDa.EjecutarComando(textoSQL);
//Mostrando mensaje
MessageBox.Show(oDa.Mensaje);
}
catch
{
MessageBox.Show("Los datos no estan completos...");
}
}
private void btnBuscar_Click(object sender, EventArgs e)
{
//Crear el objeto
CDatos oDa = new CDatos();
//Crear la tabla de datos
DataTable oTabla = new DataTable();
//La consulta en SQL
string textoSQL = "select * from tpersona where idpersona="+txtIdPersona.Text+"";
//Ejecutar la consulta
oTabla = oDa.EjecutarConsulta(textoSQL);
//Extraer datos del data table a los controles del formulario
if (oTabla != null && oTabla.Rows.Count > 0)
{
txtNombre.Text = oTabla.Rows[0][1].ToString();
cboSexo.SelectedItem = oTabla.Rows[0][2].ToString();
txtDireccion.Text = oTabla.Rows[0][3].ToString();
txtTelefono.Text = oTabla.Rows[0][4].ToString();
txtEmail.Text = oTabla.Rows[0][5].ToString();
txtObservacion.Text = oTabla.Rows[0][6].ToString();
cboTipo.SelectedValue = oTabla.Rows[0][7].ToString();
}
else
{
txtNombre.Text = "";
cboSexo.SelectedItem = "";
txtDireccion.Text = "";
txtTelefono.Text = "";
txtEmail.Text = "";
txtObservacion.Text = "";
cboTipo.SelectedValue = "";
MessageBox.Show("No existe este código...");
}
}