Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Consolidar la practica de la arquitectura de tres capas usando bases de datos sql server, capa de
datos, capa de negocios y capa de presentación.
Introducción: en esta oportunidad realizaremos las 4 operaciones CRUD (Create, Read, Update,
Delete) en una base de datos SQL Server, desde una aplicación de Windows Form en C#, con
procedimientos almacenados, programación orientada a objetos y arquitectura tradicional en capas.
INSERCION DE PRODUCTOS
insert into Productos
values
('Gaseosa','3 litros','marcacola',7.5,24),
('Chocolate','Tableta 100 gramos','iberica',12.5,36),
('Chocolate','Frasco 500 gramos','Nutella',250,10),
('Mermelada','Guayaba 150 gramos','Callejas',42.5,8),
('Leche','Litro de leche entera','Centrolac',31.5,25)
---PROCEDIMIENTOS ALMACENADOS
-----------------MOSTRAR
create proc MostrarProductos
as
select *from Productos
go
-----------------INSERTAR
create proc InsetarProductos
@nombre nvarchar (100),
@descrip nvarchar (100),
@marca nvarchar (100),
@precio float,
@stock int
as
insert into Productos values (@nombre,@descrip,@marca,@precio,@stock)
go
-----------------ELIMINAR
create proc EliminarProducto
@idpro int
as
delete from Productos where Id=@idpro
go
------------------EDITAR
Creamos la cadena de conexión, un método para abrir la conexión y otro método para cerrar
la conexión.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace CapaDatos
{
public class CD_Conexion
{
private SqlConnection Conexion = new
SqlConnection("Server=.;DataBase=Practica;Integrated Security=true");
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace CapaDatos
{
class CD_Productos
{
private CD_Conexion conexion = new CD_Conexion();
SqlDataReader leer;
DataTable tabla = new DataTable();
SqlCommand comando = new SqlCommand();
public void Insertar(string nombre, string desc, string marca, double precio, int
stock)
{
comando.Connection = conexion.AbrirConexion();
comando.CommandText = "InsertarProductos";
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue("@nombre", nombre);
comando.Parameters.AddWithValue("@descrip", desc);
comando.Parameters.AddWithValue("@Marca", marca);
comando.Parameters.AddWithValue("@precio", precio);
comando.Parameters.AddWithValue("@stock", stock);
comando.ExecuteNonQuery();
comando.Parameters.Clear();
conexion.CerrarConexion();
}
public void Editar(string nombre, string desc, string marca, double precio,
int stock, int id)
{
comando.Connection = conexion.AbrirConexion();
comando.CommandText = "EditarProductos";
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue("@nombre",nombre);
comando.Parameters.AddWithValue("@descrip",desc);
comando.Parameters.AddWithValue("@Marca", marca);
comando.Parameters.AddWithValue("@precio", precio);
comando.Parameters.AddWithValue("@stock", stock);
comando.Parameters.AddWithValue("@id", id);
comando.ExecuteNonQuery();
comando.Parameters.Clear();
conexion.CerrarConexion();
}
public void Eliminar (int id)
{
comando.Connection = conexion.AbrirConexion();
comando.CommandText = "EliminarProducto";
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue("@idpro", id);
comando.ExecuteNonQuery();
comando.Parameters.Clear();
conexion.CerrarConexion();
}
}
}
El código es:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CapaDatos;
namespace CapaNegocio
{
public class CN_Productos
{
private CD_Productos objetoCD = new CD_Productos();
public DataTable MostrarProd()
{
public void InsertarProd (string nombre, string desc, string marca, string
precio, string stock)
{
objetoCD.Insertar(nombre, desc, marca, Convert.ToDouble(precio),
Convert.ToInt32(stock));
public void EditarProd(string nombre, string desc, string marca, string precio,
string stock, string id)
{
objetoCD.Editar(nombre, desc, marca, Convert.ToDouble(precio),
Convert.ToInt32(stock), Convert.ToInt32(id));
}
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 CapaNegocio;
namespace CapaPresentacion
{
public partial class Form1 : Form
{
CN_Productos objetoCN = new CN_Productos();
private string idProducto = null;
private bool Editar = false;
public Form1()
{
InitializeComponent();
}
}
private void limpiarForm()
{
txtNombre.Clear();
txtDesc.Clear();
txtMarca.Clear();
txtStock.Clear();
txtPrecio.Clear();