Vous êtes sur la page 1sur 15

GUIA DE PROGRAMACION 2

Utilizando SQL Server cree la base de datos universidad y dentro de esta la tabla estudiante.

En Visual Studio cree un nuevo proyecto, seleccione Otros tipos de proyectos y luego solución en
blanco. Póngale como nombre: Universidad

Crear carpetas Logica y Presentacion


En el explorador de soluciones haga click derecho sobre la carpeta llamada Presentacion,
escoja la opción agregar nuevo proyecto, agregue una nueva aplicación para Windows (C#) y
nómbrela “Presentacion”.

En el explorador de soluciones haga click derecho sobre la carpeta llamada Logica, escoja la opción
agregar nuevo proyecto, agregue una nueva Biblioteca de Clases (C#) y nómbrela “Logica”.
Al crear los proyectos deberá quedarle como la siguiente imagen.

En la clase “Conexion” se definen los parámetros de conexión, los cuales deben ser coherentes
con el motor de base de datos seleccionado. En el ejercicio propuesto en esta guía se debe utilizar
el motor SQL Server el cual requiere de su propio formato de cadena de conexión tal y
como se muestra a continuación:

Tomar en cuenta el nombre del servidor con el que se conecta local, en este caso es:

DESKTOP-4HU25LS\SQLEXPRESS (ojo el nombre de servidor puede variar en su máquina, debe


hacer la búsqueda del servidor como se explica en la parte superior).
En este proceso, entrar a Visual Estudio y definir la conexión en el servidor:

Llenar la pantalla con el nombre de servidor y buscar la base de datos que se creó con el Sql Server
Management Studio de la siguiente manera:
Si el resultado es satisfactorio, ya se puede buscar la cadena de conexión para eso daremos click
en botón aceptar y luego daremos otro click en la opción de Avanzadas…; lo que interesa en esta
opción es el origen de datos (Data Source) como se muestra en la imagen:

En la clase “Conexion” se definen los parámetros de conexión, los cuales deben ser coherentes con
el motor de base de datos seleccionado. En el ejercicio propuesto en esta guía se debe utilizar el
motor SQL Server el cual requiere de su propio formato de cadena de conexión tal y como se
muestra a continuación:

Data Source= Data Source=DESKTOP-SMBE3PF\SQLEXPRESS;Initial Catalog=universidad;Integrated


Security=True
En el proyecto Logica agregar la clase Conexión y agregar el siguiente código. Recuerde poner la
clase como pública (public class Conexion).
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Logica
{
public class Conexion
{
private string mensaje;
SqlConnection conn;
SqlTransaction tran;
public string Mensaje
{
get { return mensaje; }
set { mensaje = value; }
}
public Conexion()
{
//Cadena de Conexion Para SQL Server:
String cadenaconexion = " Data Source=DESKTOP-SMBE3PF\\SQLEXPRESS;Initial
Catalog=universidad;Integrated Security=True";
conn = new SqlConnection(cadenaconexion);
}

public DataSet ConsultarSQL(String SentenciaSQL)


{
try
{
conn.Open();
SqlDataAdapter objRes = new SqlDataAdapter(SentenciaSQL, conn);
DataSet datos = new DataSet();
objRes.Fill(datos, "TablaConsultada");
mensaje = "La consulta de datos fue Exitosa";
return datos;
}
catch (Exception MiExc)
{
DataSet datos2 = new DataSet();
mensaje = "ERROR: " + MiExc.Message;
return datos2;
}
finally
{
conn.Close();
}
}
public bool EjecutarSQL(String SentenciaSQL)
{
try
{
conn.Open();
SqlCommand miComando = new SqlCommand();
miComando.Connection = conn;
miComando.CommandText = SentenciaSQL;
miComando.ExecuteNonQuery();
mensaje = "Proceso Ejecutado con Exito";
return true;
}
catch (Exception e)
{
mensaje = "Tenemos el siguiente error: " + e.Message;
return false;
}
finally
{
conn.Close();
}
}
}
}

En el proyecto Logica agregar la clase Estudiante y agregar el siguiente código. Recuerde poner la
clase como publica y heredar de conexión (public class Estudiante : Conexion).
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Logica
{
public class Estudiante : Conexion
{
private string carnet;
private string nombre;
private string apellido;
private string direccion;
private string telefono;

public string Carnet


{
get { return carnet; }
set { carnet = value; }
}
public string Nombre
{
get { return nombre; }
set { nombre = value; }
}
public string Apellido
{
get { return apellido; }
set { apellido = value; }
}
public string Direccion
{
get { return direccion; }
set { direccion = value; }
}
public string Telefono
{
get { return telefono; }
set { telefono = value; }
}
public bool InsertarEstudiante()
{
string cadenaSQLInsertar = "INSERT INTO estudiante (carnet, nombre,
apellido, direccion, telefono ) VALUES('" + this.carnet + "','" + this.nombre + "','" +
this.apellido + "','" + this.direccion + "','" + this.telefono + "')";
bool respuestaSQL = EjecutarSQL(cadenaSQLInsertar);
return respuestaSQL;
}
public DataSet ConsultarEstudiante(string id)
{
string cadenaSQLConsultar = "SELECT * FROM estudiante WHERE carnet = '" +
id + "'";
DataSet ConsultaResultante = ConsultarSQL(cadenaSQLConsultar);
return ConsultaResultante;
}
public DataSet ConsultarEstudiantes()
{
string cadenaSQLConsultar = "SELECT * FROM estudiante";
DataSet ConsultaResultante = ConsultarSQL(cadenaSQLConsultar);
return ConsultaResultante;
}
public bool ActualizarEstudiante()
{
string cadenaSQLActualizar = "UPDATE estudiante SET nombre = '" +
this.nombre + "', apellido = '" + this.apellido + "',direccion='" + this.direccion +
"',telefono='" + this.telefono + "' WHERE (carnet= '" + this.carnet + "')";
bool respuestaSQL = EjecutarSQL(cadenaSQLActualizar);
return respuestaSQL;
}
public bool EliminarEstudiante(string id)
{
string cadenaSQLEliminar = "DELETE FROM estudiante WHERE carnet = '" + id
+ "'";
bool respuestaSQL = EjecutarSQL(cadenaSQLEliminar);
return respuestaSQL;
}

}
}

Desde el explorador de soluciones en la parte de la solución llamada “Presentacion” y dentro del


submenú llamado “Referencias” escoja la opción agregar referencia. En la ventana “Agregar
Referencia escoja la pestaña “Proyectos” y seleccione “Logica” en nombre de proyecto,
finalmente presione click en el botón aceptar.
Diseñe el siguiente formulario. Debe ir a la capa de presentación y elegir Form1:

Agregue dos panel y ponga en la propiedad BorderStyle = FixedSingle.

Agregue los botones, etiquetas, campos y un DataGridView. Su formulario deberá quedar como la siguiente imagen.

Agregue el siguiente código al formulario.

using Logica;
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;
namespace Presentacion
{
public partial class Form1 : Form
{
private string accion;
public Form1()
{
accion = "";
InitializeComponent();
}

private void btnNuevo_Click(object sender, EventArgs e)


{
accion = "agregar";
LimpiarCampos();
DesbloquearCampos();
btnModificar.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = true;
btnCancelar.Enabled = true;
}

private void btnModificar_Click(object sender, EventArgs e)


{
accion = "modificar";
DesbloquearCampos();
txtCarnet.ReadOnly = true;
btnNuevo.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = true;
btnCancelar.Enabled = true;
}

private void btnEliminar_Click(object sender, EventArgs e)


{
Estudiante est = new Estudiante();
try
{
bool respuestaSQL = est.EliminarEstudiante(txtCarnet.Text);
if (respuestaSQL == true)
{
MessageBox.Show("Los datos fueron eliminados correctamente");
LimpiarCampos();
btnNuevo.Enabled = true;
CargarDatos();
}
else
{
MessageBox.Show(est.Mensaje);
}
}
catch (Exception Ex)
{
MessageBox.Show("Error!: " + Ex.Message + " " + est.Mensaje);
}

private void btnGuardar_Click(object sender, EventArgs e)


{
Estudiante est = new Estudiante();
if (accion.Equals("agregar"))
{
try
{
est.Carnet = txtCarnet.Text;
est.Nombre = txtNombre.Text;
est.Apellido = txtApellido.Text;
est.Direccion = txtDireccion.Text;
est.Telefono = txtTelefono.Text;
bool respuestaSQL = est.InsertarEstudiante();
if (respuestaSQL == true)
{
MessageBox.Show("Los datos se agregaron correctamente");
LimpiarCampos();
BloquearCampos();
btnModificar.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = false;
btnGuardar.Enabled = false;
btnCancelar.Enabled = false;
CargarDatos();
btnNuevo.Enabled = true;

}
else
{
MessageBox.Show(est.Mensaje);
}
}
catch (Exception Ex)
{
MessageBox.Show("Error!: " + Ex.Message + " " + est.Mensaje);
}
}else
{
try
{
est.Carnet = txtCarnet.Text;
est.Nombre = txtNombre.Text;
est.Apellido = txtApellido.Text;
est.Direccion = txtDireccion.Text;
est.Telefono = txtTelefono.Text;
bool respuestaSQL = est.ActualizarEstudiante();
if (respuestaSQL == true)
{
MessageBox.Show("Los datos fueron actualizados correctamente");
LimpiarCampos();
BloquearCampos();
btnModificar.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = false;
btnGuardar.Enabled = false;
btnCancelar.Enabled = false;
CargarDatos();
btnNuevo.Enabled = true;
}
else
{
MessageBox.Show(est.Mensaje);
}
}
catch (Exception Ex)
{
MessageBox.Show("Error!: " + Ex.Message + " " + est.Mensaje);
}
}
}

private void btnCancelar_Click(object sender, EventArgs e)


{
accion = "";
LimpiarCampos();
BloquearCampos();
btnModificar.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = false;
btnGuardar.Enabled = false;
btnCancelar.Enabled = false;
}

private void dgvEstudiantes_CellContentClick(object sender,


DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow fila = this.dgvEstudiantes.Rows[e.RowIndex];
txtCarnet.Text = fila.Cells["carnet"].Value.ToString();
txtNombre.Text = fila.Cells["nombre"].Value.ToString();
txtApellido.Text = fila.Cells["apellido"].Value.ToString();
txtDireccion.Text = fila.Cells["direccion"].Value.ToString();
txtTelefono.Text = fila.Cells["telefono"].Value.ToString();
btnModificar.Enabled = true;
btnEliminar.Enabled = true;
}

}
private void LimpiarCampos()
{
txtCarnet.Text = "";
txtNombre.Text = "";
txtApellido.Text = "";
txtDireccion.Text = "";
txtTelefono.Text = "";
}

private void CargarDatos()


{
Estudiante est = new Estudiante();
try
{
DataSet DatosEstudiantes = est.ConsultarEstudiantes();
int numregistros = DatosEstudiantes.Tables["TablaConsultada"].Rows.Count;
if (numregistros == 0)
{
MessageBox.Show("No existe en la tabla");
}
else
{
dgvEstudiantes.DataSource =
DatosEstudiantes.Tables["TablaConsultada"];

}
}
catch (Exception Ex)
{
MessageBox.Show("Error!: " + Ex.Message + " " + est.Mensaje);
}
}

private void Form1_Load(object sender, EventArgs e)


{
CargarDatos();
BloquearCampos();
btnModificar.Enabled = false;
btnEliminar.Enabled = false;
btnGuardar.Enabled = false;
btnCancelar.Enabled = false;
}

private void BloquearCampos()


{
txtCarnet.ReadOnly = true;
txtNombre.ReadOnly = true;
txtApellido.ReadOnly = true;
txtDireccion.ReadOnly = true;
txtTelefono.ReadOnly = true;
}

private void DesbloquearCampos()


{
txtCarnet.ReadOnly = false;
txtNombre.ReadOnly = false;
txtApellido.ReadOnly = false;
txtDireccion.ReadOnly = false;
txtTelefono.ReadOnly = false;
}
}
}

Al ejecutarse deberá verse como la siguiente imagen.

Vous aimerez peut-être aussi