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.

5 comentarios:

J in Program dijo...

OYE Y SI NO ME SALE LO DE BASEDATOS.GuardarAlumno que tengo que hacer

@dryancito dijo...

Claro que si te va a salir, puesto que este ejemplo es uno de los mas sencillos que he hecho en mis proyectos que enseño.

J in Program dijo...

es que soy principiante con esto de los stored pero necesito lo de donde dice que una clase de acceso_data por que me imagino que ahi va la conexion y es por eso que no hace enlaze con el boton agradeceria tu respuesta

J in Program dijo...

es que soy principiante con esto de los stored pero necesito lo de donde dice que una clase de acceso_data por que me imagino que ahi va la conexion y es por eso que no hace enlaze con el boton agradeceria tu respuesta

@dryancito dijo...

la clase de Acceso a Datos en un archivo .Cs independiente de los demás archivos de nuestro proyecto, es una Clase (puedes investigar las terminologías de Programación Orientada a Objetos), de allí se llaman los métodos que hemos definido en ella, los procedimientos almacenados se crean en nuestro Gestos de Base de Datos (SQL Server 2008 por ejemplo)