Como invocar Procedimientos Almacenados en nuestra clase conexión.

0
373

Descargar ejemplo ConexionDB_02.zip

En esta ocasión vamos a continuar la clase conexión desarrollada unos artículos atrás, y ahora vamos a agregarle la opción de poder invocar procedimientos almacenados con múltiples parámetros de distintos tipos de datos, de una forma muy sencilla y basados en los estándares altamente recomendados.

El primer ejemplo de esta Clase Conexion solo permite ejecutar querys simples.

Ahora la gran diferencia es que vamos a agregar dos clases extras, clase StoredProcedure y StoredProcedureParameter.

La clase StoredProcedure tiene dos variables, mNombreProcedimiento como un String y mParametros como una colección de datos, con base a estas variables privadas tenemos sus propias Propiedades Públicas llamadas Nombre y Parámetros.

Un punto importante de esta clase es su constructor, la cual inicializa las variables simples y la colección para los datos, y sin la cual no podríamos invocar los siguientes procedimientos y funciones.

Ahora para poder utilizar esta clase tenemos el procedimiento AgregarParametro que recibe el nombre de la Variable y el Valor de esta variable. Algo con lo que hay que tener cuidado es que la variable se debe llamar igual a como esta declarada en el procedimiento y no hay que enviarle el @ ya que se agrega automáticamente en el procedimiento.

Como podemos ver, al nombre de la variable se le agrega el @ necesario para que sea interpretado por el procedimiento almacenado, y el valor el cual es de un tipo Objeto, más adelante podremos ver como lo lee el sistema. Preferiblemente es que se le envíen las variables en el mismo orden en que se reciben en el Procedimiento Almacenado.

Ahora para ejecutar el procedimiento con sus respectiva variables debemos invocar la función EjecutarProcedimiento que nos retorna un dataset.

En esta función declaramos una variable de tipo StoredProcedureParameter, la cual veremos más adelante.

En esta función EjecutarProcedimiento declaramos una variable SqlCommand y le indicamos que es de tipo StoredProcedure, ( sqlCmd.CommandType = CommandType.StoredProcedure ), con esto le indicamos al SqlDataAdapter la forma en que se ejecuta la consulta.

La última clase de este ejemplo, StoredProcedureParameter es la que administra las posibles variables del procedimiento, igualmente el procedimiento podría no recibir variables y la colección estar limpia.

El constructor recibe las dos variables del parámetro, el nombre de la variable y el valor.

La propiedad GetTypeProperty es muy importante en esta clase, ya que le indica al procedimiento de que tipo de datos es la variable que se le está enviando.

Ahora para poder utilizar estas clases en un sistema de una forma muy sencilla deberíamos de invocarlas así:

Se pueden agregar tantas variable como sean necesarias no hay límite, esto en el caso de que se llame a un procedimiento almacenado, pero si lo que se ejecuta es una consulta directa (no recomendada para aplicaciones n capas), se debe hacer así:

De esta forma podemos invocar procedimientos almacenados en nuestras aplicaciones y no tener que lidiar con estar desarrollando código distinto cada vez que lo necesitemos.

Descargar ejemplo ConexionDB_02.zip

Dejar respuesta

Please enter your comment!
Please enter your name here