A programadores con conocimientos básicos en C#, por la razón de que se obvian algunos pasos básicos porque asumo que usted domina éstos.
Antes de empezar, debemos saber:
¿Qué es un Stored Procedure?
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) almacenado físicamente en una base de datos.
-wikipediaEn otras palabras un Stored Procedure es un trozo de código SQL que se almacena en nuestra base de datos para posteriormente ser usado por nuestra aplicación, tienen un comportamiento similar al de funciones.
Paso 1: Crear un Stored Procedure en nuestra base de datos.
CREATE PROCEDURE [dbo].[GetPetName]
@CarId int,
@petName char(10) output
AS
SELECT @petName = PetName FROM Inventory WHERE CarId = @CarId;
RETURN 0
Este es un simple Stored Procedure el cuál tiene dos argumentos, uno de entrada(input) y otro de salida (output).
Paso 2: Crear una función que se encargará de llamar y manipular nuestro stored procedure la cual llamaré (En tu caso debes hacer el ejemplo con el stored procedure que necesites usar para tu aplicacion, por ende puedes llamar la función como quieras.) ObtenerNombreMascotaPorId.
Codigo:
//Declaro mi funcion como tipo string, ya que me devolverá el nombre de la mascota
public string ObtenerNombreMascotaById(int CarId)
{
string petName = string.Empty;
/*Creo un nuevo objeto tipo SqlCommand, este objeto es el que me permitirá
ejecutar el Stored Procedure, para hacerlo necesitamos proporcionarle dos argumento.
El primer argumento es el nombre de nuestro Stored Procedure, seguino de nuestra conección.*/
using (SqlCommand cmd = new SqlCommand("GetPetName", sqlCn))
{
/*Al nuestro Stored Procedure tener dos argumentos, debemos hacer lo siguiente para
pasarselo vía programación*/
//Primer paso: Declarar un nuevo objeto SqlParameter
SqlParameter param = new SqlParameter();
//Segundo Paso: Por medio de la promiedad ParameterName pasarle el nombre de nuestro
//Primer argumento
param.ParameterName = "@CarId";
//Pasarle el valor de nuestro argumento, si lo requiere
param.Value = CarId;
//Decirle el tipo de valor que espera, en este caso como es el Id, es tipo int
param.SqlDbType = SqlDbType.Int;
param.Size = 10;
//Esta parte no es necesaria, porque por default espera valores de input
param.Direction = ParameterDirection.Input;
//En esta parte blindamos nuestro parametro con nuestro Stored Procedure
cmd.Parameters.Add(param);
//Hacemos los mismos pasos para pasarle el siguiente argumento, pero con un ligero cambio
//Ya que nuestro segundo argumento no es de dirección Input, sino OutPut
param = new SqlParameter();
param.ParameterName = "@petName";
param.SqlDbType = SqlDbType.VarChar;
param.Size = 10;
//Por lo que en esta parte le dejamos saber que nuestro argumento es de tipo OutPut por lo que al
//ejecutarte nuestro stored procedure este argumento podrá tener o no un valor, en mi caso sí.
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param);
//Ejecutamos nuestro Stored Procedure
cmd.ExecuteNonQuery();
//Con esta pieza de código recupero el valor de mi argumento tipo OutPut @petName
//Y lo asigno a la variable que declaré al inicio de mi función.
petName = (string)cmd.Parameters["@petName"].Value;
}
return petName;
}
Esto sería todo, fácil y rápido como la mayoría de cosas que se hacen en C#, no olviden dejar sus preguntas y nos vemos para una próxima entrega. Adiós!
@CarId int,
@petName char(10) output
AS
SELECT @petName = PetName FROM Inventory WHERE CarId = @CarId;
RETURN 0
Este es un simple Stored Procedure el cuál tiene dos argumentos, uno de entrada(input) y otro de salida (output).
Paso 2: Crear una función que se encargará de llamar y manipular nuestro stored procedure la cual llamaré (En tu caso debes hacer el ejemplo con el stored procedure que necesites usar para tu aplicacion, por ende puedes llamar la función como quieras.) ObtenerNombreMascotaPorId.
Codigo:
//Declaro mi funcion como tipo string, ya que me devolverá el nombre de la mascota
public string ObtenerNombreMascotaById(int CarId)
{
string petName = string.Empty;
/*Creo un nuevo objeto tipo SqlCommand, este objeto es el que me permitirá
ejecutar el Stored Procedure, para hacerlo necesitamos proporcionarle dos argumento.
El primer argumento es el nombre de nuestro Stored Procedure, seguino de nuestra conección.*/
using (SqlCommand cmd = new SqlCommand("GetPetName", sqlCn))
{
/*Al nuestro Stored Procedure tener dos argumentos, debemos hacer lo siguiente para
pasarselo vía programación*/
//Primer paso: Declarar un nuevo objeto SqlParameter
SqlParameter param = new SqlParameter();
//Segundo Paso: Por medio de la promiedad ParameterName pasarle el nombre de nuestro
//Primer argumento
param.ParameterName = "@CarId";
//Pasarle el valor de nuestro argumento, si lo requiere
param.Value = CarId;
//Decirle el tipo de valor que espera, en este caso como es el Id, es tipo int
param.SqlDbType = SqlDbType.Int;
param.Size = 10;
//Esta parte no es necesaria, porque por default espera valores de input
param.Direction = ParameterDirection.Input;
//En esta parte blindamos nuestro parametro con nuestro Stored Procedure
cmd.Parameters.Add(param);
//Hacemos los mismos pasos para pasarle el siguiente argumento, pero con un ligero cambio
//Ya que nuestro segundo argumento no es de dirección Input, sino OutPut
param = new SqlParameter();
param.ParameterName = "@petName";
param.SqlDbType = SqlDbType.VarChar;
param.Size = 10;
//Por lo que en esta parte le dejamos saber que nuestro argumento es de tipo OutPut por lo que al
//ejecutarte nuestro stored procedure este argumento podrá tener o no un valor, en mi caso sí.
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param);
//Ejecutamos nuestro Stored Procedure
cmd.ExecuteNonQuery();
//Con esta pieza de código recupero el valor de mi argumento tipo OutPut @petName
//Y lo asigno a la variable que declaré al inicio de mi función.
petName = (string)cmd.Parameters["@petName"].Value;
}
return petName;
}
Esto sería todo, fácil y rápido como la mayoría de cosas que se hacen en C#, no olviden dejar sus preguntas y nos vemos para una próxima entrega. Adiós!
No hay comentarios.:
Publicar un comentario