La creación del archivo AppConfig para la conexión la omito, ya que en la publicación de mi blog Configurar AppConfig lo explico, el script de sql te genera 4 consultas las 2 primeras son las que utilizaremos (Insertar y Listar)y las otras 2 son para Modificar y borrar registros no agregue el código para estas 2 últimas intenten hacerlo ustedes si tienen alguna duda podrán dejar sus comentarios al final.
Lo primero es crear un nuevo proyecto de windows forms C# nos vamos a Archivo - Nuevo - Proyecto así como se muestra en las imagenes para ampliar las imagenes den click sobre ellas:
Una vez creado procedemos a realizar nuestro diseño para eso necesitaremos agregar 4 Labels, 4 textBoxs, 3 buttons y 1 DataGridView.
Los nombraremos de la siguiente manera:
pare eso nos vamos a propiedades del control, si no les aparece la ventana de propiedades damos click derecho sobre un control cualquiera, y buscamos su atributo (Name) y ahi es donde agregamos sus nombres:
TextBoxs txtNom, txtDir, txtEst, txtID,
Buttons btnGuardar, btnModificar, btnEliminar
DataGridView gvEmpresas, a los labels no les aplicamos la propiedad ver imagen.
Ahora procedemos a agregar las clases para agregar funcionalidad para eso creamos 2 clases:
clsEmpresa.cs: contiene las propiedades.
clsEmpresaTrans.cs: contiene los metodos para las transacciones entre sql server 2014 y visual studio 2013
// Código para la clase clsEmpresa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Catalogo
{
public class clsEmpresa
{
// declaracion de variables
private int intidempresa = 0;
private string strnombre = string.Empty;
private string strdireccion = string.Empty;
private string strEstado = string.Empty;
private DateTime DttfechaRegistro = DateTime.Now;
private bool booactiva = false;
//constructores
public clsEmpresa() { }
public clsEmpresa(int paridempresa
, string parnombre
, string pardireccion
, string parEstado
, DateTime parfechaRegistro
, bool paractiva)
{
intidempresa = paridempresa;
strnombre = parnombre;
strdireccion = pardireccion;
strEstado = parEstado;
DttfechaRegistro = parfechaRegistro;
booactiva = paractiva;
}
// propiedades get - set
public int idempresa { get { return intidempresa; } set { intidempresa = value; } }
public string nombre { get { return strnombre; } set { strnombre = value; } }
public string direccion { get { return strdireccion; } set { strdireccion = value; } }
public string Estado { get { return strEstado; } set { strEstado = value; } }
public DateTime fechaRegistro { get { return DttfechaRegistro; } set { DttfechaRegistro = value; } }
public bool activa { get { return booactiva; } set { booactiva = value; } }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Catalogo
{
public class clsEmpresa
{
// declaracion de variables
private int intidempresa = 0;
private string strnombre = string.Empty;
private string strdireccion = string.Empty;
private string strEstado = string.Empty;
private DateTime DttfechaRegistro = DateTime.Now;
private bool booactiva = false;
//constructores
public clsEmpresa() { }
public clsEmpresa(int paridempresa
, string parnombre
, string pardireccion
, string parEstado
, DateTime parfechaRegistro
, bool paractiva)
{
intidempresa = paridempresa;
strnombre = parnombre;
strdireccion = pardireccion;
strEstado = parEstado;
DttfechaRegistro = parfechaRegistro;
booactiva = paractiva;
}
// propiedades get - set
public int idempresa { get { return intidempresa; } set { intidempresa = value; } }
public string nombre { get { return strnombre; } set { strnombre = value; } }
public string direccion { get { return strdireccion; } set { strdireccion = value; } }
public string Estado { get { return strEstado; } set { strEstado = value; } }
public DateTime fechaRegistro { get { return DttfechaRegistro; } set { DttfechaRegistro = value; } }
public bool activa { get { return booactiva; } set { booactiva = value; } }
}
}
// Código para la clase clsEmpresaTrans
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace Catalogo
{
public class clsEmpresaTrans
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);
clsEmpresa empresa = new clsEmpresa();
SqlCommand cmd = null;
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
//constructores
public clsEmpresaTrans() { }
public clsEmpresaTrans(clsEmpresa parEmp)
{
empresa = parEmp;
}
// Metodos
public bool Guardar()
{
try
{
cmd = new SqlCommand("SPEmpresa", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@opc", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@idempresa", SqlDbType.Int).Value = empresa.idempresa;
cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 100).Value = empresa.nombre;
cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 200).Value = empresa.direccion;
cmd.Parameters.Add("@Estado", SqlDbType.VarChar, 50).Value = empresa.Estado;
cmd.Parameters.Add("@fechaRegistro", SqlDbType.SmallDateTime).Value = empresa.fechaRegistro;
cmd.Parameters.Add("@activa", SqlDbType.Bit).Value = empresa.activa;
cnn.Open();
cmd.ExecuteNonQuery();
return true;
}
catch (Exception)
{
cnn.Close();
return false;
}
finally
{
cnn.Close();
}
}
public DataTable Listar()
{
try
{
cmd = new SqlCommand("SPEmpresa", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@opc", SqlDbType.Int).Value = 2;
cnn.Open();
da.SelectCommand = cmd;
da.Fill(dt);
return dt;
}
catch (Exception)
{
cnn.Close();
return dt = null;
}
finally
{
cnn.Close();
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace Catalogo
{
public class clsEmpresaTrans
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);
clsEmpresa empresa = new clsEmpresa();
SqlCommand cmd = null;
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
//constructores
public clsEmpresaTrans() { }
public clsEmpresaTrans(clsEmpresa parEmp)
{
empresa = parEmp;
}
// Metodos
public bool Guardar()
{
try
{
cmd = new SqlCommand("SPEmpresa", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@opc", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@idempresa", SqlDbType.Int).Value = empresa.idempresa;
cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 100).Value = empresa.nombre;
cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 200).Value = empresa.direccion;
cmd.Parameters.Add("@Estado", SqlDbType.VarChar, 50).Value = empresa.Estado;
cmd.Parameters.Add("@fechaRegistro", SqlDbType.SmallDateTime).Value = empresa.fechaRegistro;
cmd.Parameters.Add("@activa", SqlDbType.Bit).Value = empresa.activa;
cnn.Open();
cmd.ExecuteNonQuery();
return true;
}
catch (Exception)
{
cnn.Close();
return false;
}
finally
{
cnn.Close();
}
}
public DataTable Listar()
{
try
{
cmd = new SqlCommand("SPEmpresa", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@opc", SqlDbType.Int).Value = 2;
cnn.Open();
da.SelectCommand = cmd;
da.Fill(dt);
return dt;
}
catch (Exception)
{
cnn.Close();
return dt = null;
}
finally
{
cnn.Close();
}
}
}
}
// Código que agregamos al formulario (Form1.cs) que se ha creado por default
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
namespace Catalogo
{
public partial class Form1 : Form
{
clsEmpresa parEmp = new clsEmpresa();
clsEmpresaTrans empTrans = null;
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listar();
}
private void listar()
{
empTrans = new clsEmpresaTrans(parEmp);
dt = empTrans.Listar();
if (dt.Rows.Count > 0)
{
gvEmpresas.DataSource = dt;
}
else
{
MessageBox.Show("No hay filas que mostrar " + dt.Rows.Count.ToString() + " filas");
}
}
private void btnGuardar_Click(object sender, EventArgs e)
{
parEmp.nombre = txtNom.Text;
parEmp.direccion = txtDir.Text;
parEmp.Estado = txtEst.Text;
empTrans = new clsEmpresaTrans(parEmp);
if (empTrans.Guardar())
{
MessageBox.Show(" Se registro correctamente la información");
listar();
}
}
}
}
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
namespace Catalogo
{
public partial class Form1 : Form
{
clsEmpresa parEmp = new clsEmpresa();
clsEmpresaTrans empTrans = null;
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listar();
}
private void listar()
{
empTrans = new clsEmpresaTrans(parEmp);
dt = empTrans.Listar();
if (dt.Rows.Count > 0)
{
gvEmpresas.DataSource = dt;
}
else
{
MessageBox.Show("No hay filas que mostrar " + dt.Rows.Count.ToString() + " filas");
}
}
private void btnGuardar_Click(object sender, EventArgs e)
{
parEmp.nombre = txtNom.Text;
parEmp.direccion = txtDir.Text;
parEmp.Estado = txtEst.Text;
empTrans = new clsEmpresaTrans(parEmp);
if (empTrans.Guardar())
{
MessageBox.Show(" Se registro correctamente la información");
listar();
}
}
}
}
-- Script para crear la base de datos, su tabla y su SP
create database DBTuto-- creamos la base de datos
go
use DBTuto-- nos posicionamos en ella
go
create table Empresa-- creamos la tabla
(
idempresa int identity(1,1) primary key
, nombre varchar(100)
, direccion varchar(200)
, Estado varchar(50)
, fechaRegistro smalldatetime default(getdate())
, activa bit default(1)
)
go
create procedure SPEmpresa-- creamos el SP
@opc int
, @idempresa int = null
, @nombre varchar(200) = null
, @direccion varchar(200) = null
, @Estado varchar(50) = null
, @fechaRegistro smalldatetime = null
, @activa bit = null
as
-- el SP tiene 4 consultas las cuales se ejecutan dependiendo de la opcion elegida
-- Inserccion de datos
if @opc = 1
begin
insert into Empresa(nombre, direccion, Estado)
values( @nombre, @direccion, @Estado)
end
-- Listar datos
if @opc = 2
begin
select a.idempresa, a.nombre, a.direccion, a.Estado, a.fechaRegistro, a.activa from Empresa a
end
-- Actualizar datos
if @opc = 3
begin
update Empresa set
nombre = @nombre
, direccion = @direccion
, Estado = @Estado
where idempresa = @idempresa
end
-- Borrado logico
if @opc = 4
begin
update Empresa set activa = 1 where idempresa = @idempresa
end
go
use DBTuto-- nos posicionamos en ella
go
create table Empresa-- creamos la tabla
(
idempresa int identity(1,1) primary key
, nombre varchar(100)
, direccion varchar(200)
, Estado varchar(50)
, fechaRegistro smalldatetime default(getdate())
, activa bit default(1)
)
go
create procedure SPEmpresa-- creamos el SP
@opc int
, @idempresa int = null
, @nombre varchar(200) = null
, @direccion varchar(200) = null
, @Estado varchar(50) = null
, @fechaRegistro smalldatetime = null
, @activa bit = null
as
-- el SP tiene 4 consultas las cuales se ejecutan dependiendo de la opcion elegida
-- Inserccion de datos
if @opc = 1
begin
insert into Empresa(nombre, direccion, Estado)
values( @nombre, @direccion, @Estado)
end
-- Listar datos
if @opc = 2
begin
select a.idempresa, a.nombre, a.direccion, a.Estado, a.fechaRegistro, a.activa from Empresa a
end
-- Actualizar datos
if @opc = 3
begin
update Empresa set
nombre = @nombre
, direccion = @direccion
, Estado = @Estado
where idempresa = @idempresa
end
-- Borrado logico
if @opc = 4
begin
update Empresa set activa = 1 where idempresa = @idempresa
end
Resultado:
Bueno eso es todo amigos, Nos vemos en la próxima!!
Mira el video en youtube!!
http://youtu.be/xb5Z-aJsDXM
Fuente consultada:
https://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldataadapter.selectcommand(v=vs.110).aspx
No hay comentarios.:
Publicar un comentario