C# y procedimientos almacenados de SQL Server
En este ejemplo, voy a trabajar con Windows Forms y con Procedimientos almacenados de SQL Server. El trabajo fue realizado por uno de mis alumnos (Miguel Caviedes) y funciona en SQL Server 2005 y 2008 (debería funcionar en 2000 o superior).
Para bajarse el ejemplo haga click en el siguiente link:
Download ejemplo. y luego en la página del link haga click en el botón c# como indica la figura:
Para bajarse el ejemplo haga click en el siguiente link:
Download ejemplo. y luego en la página del link haga click en el botón c# como indica la figura:
Este ejemplo puede ser usado también con WPF.
Lo que hace este ejemplo es insertar nombres, apellidos, emails y direcciones al presionar el botón Nuevo Registro.
Figura 1. Formulario
Primeramente, voy a crearme una tabla de SQL Server de clientes:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cliente](
[idCliente] [bigint] IDENTITY(1,1) NOT NULL,
[nombres] [nchar](50) COLLATE Modern_Spanish_CI_AS NULL,
[apellidos] [nchar](50) COLLATE Modern_Spanish_CI_AS NULL,
[direccion] [nchar](50) COLLATE Modern_Spanish_CI_AS NULL,
[email] [nchar](100) COLLATE Modern_Spanish_CI_AS NULL,
CONSTRAINT [PK_cliente] PRIMARY KEY CLUSTERED
(
[idCliente] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Luego, creamos algunos datos en la tabla (ese trabajito les dejo como tarea).
Ahora, voy a crear un procedimiento almacenado que inserta datos en mi tabla de clientes:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[InsertarCliente]
@nombres nchar(50),
@apellidos nchar(50),
@direccion nchar(50),
@email nchar(100)
AS
Insert into cliente values
(@nombres,
@apellidos,
@direccion,
@email)
Finalmente, en C# hacemos una llamada al procedimiento almacenado.
El código sería el siguiente:
private void button4_Click(object sender, EventArgs e)
{
try
{
string ConnectionString = ”Data Source=.\SQLEXPRESS;Initial Catalog=MiBD;Integrated Security=True”;
SqlConnection cnn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand("InsertarCliente", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@nombres", SqlDbType.Char, 50);
cmd.Parameters.Add("@apellidos", SqlDbType.Char, 50);
cmd.Parameters.Add("@direccion", SqlDbType.Char, 50);
cmd.Parameters.Add("@email", SqlDbType.Char, 100);
cmd.Parameters["@nombres"].Value = textBox2.Text;
cmd.Parameters["@apellidos"].Value = textBox3.Text;
cmd.Parameters["@direccion"].Value = textBox4.Text;
cmd.Parameters["@email"].Value = textBox5.Text;
cnn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Los datos fueron insertados correctamente");
cnn.Close();
this.button4.Visible = false;
this.button1.Visible = true;
CargarClientes();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Otra forma de como realizar procedimientos almacenados y aplicando un modelo en capas podria ser de la siguiente manera
ResponderEliminarhttp://hwongu.blogspot.com/2011/02/c-aplicacion-de-escritorio-sistemas-de.html
http://hwongu.blogspot.com/2011/02/c-aplicacion-de-escritorio-sistemas-de_22.html
Saludos