domingo, 18 de octubre de 2009

Store Procedure para Insertar un Registro con SQL Server 2005 y C#.net

Este es un ejemplo sencillo de un procedimiento almacenado para insertar un registro, suponemos que tenemos una tabla en nuestra base de datos que se llame "Alumnos" con los campos:
- matricula
- nombre
- apellidoPaterno
- apellidoMaterno
El procedimiento almacenado lo llamaremos "InsertarAlumno" y para crearlo escribiremos el siguiente código en el "Analizador de Consultas" de SQl Server 2005:
Use NombreDeNuestraBD
CREATE PROCEDURE
dbo.InsertarAlumno
(
@matricula
nvarchar(10),
@nombre
nvarchar(100),
@apellidoPaterno
nvarchar(100),
@apellidoMaterno
nvarchar(100)
)
AS SET NOCOUNT ON
INSERT INTO Alumnos(matricula,
nombre, apellidoPaterno, apellidoMaterno)
VALUES
(@matricula, @nombre, @apellidoPaterno, @apellidoMaterno)
A continuación en nuestro proyecto de Visual Studio crearemos el siguiente método que puede ir en una Clase de Acceso a Datos:
public void GuardarAlumno(string
matricula, string nombre, string apellidoPat, string
apellidoMat)
{
Conectar();
SqlCommand comando = new
SqlCommand("InsertarAlumno",
conexion);
comando.CommandType =
CommandType.StoredProcedure;

comando.Parameters.Add("@matricula",
SqlDbType.NVarChar);
comando.Parameters.Add("@nombre",
SqlDbType.NVarChar);
comando.Parameters.Add("@apellidoPaterno",
SqlDbType.NVarChar);
comando.Parameters.Add("@apellidoMaterno",
SqlDbType.NVarChar);
comando.UpdatedRowSource =
UpdateRowSource.None;
comando.Parameters[0].Value =
matricula;
comando.Parameters[1].Value =
nombre;
comando.Parameters[2].Value =
apellidoPat;
comando.Parameters[3].Value =
apellidoMat;
comando.ExecuteNonQuery();
Desconectar();
}
En nuestro formulario podemos llamarlo desde un botón pasando los parámetros necesarios del Método:

private void btnGuardar_Click(object sender, EventArgs
e)
{
BaseDatos.GuardarAlumno(textMatricula.Text, textNombre.Text,
textApellidoPaterno.Text,
textApellidoMaterno.Text);
}

Espero que haya sido entendible el crear un procedimiento almacenado y ejecutarlo en un proyecto de Visual Studio con C#.net.