Ejecutar procedimiento almacenado con parámetros en C#

Haider Ali 12 octubre 2023
Ejecutar procedimiento almacenado con parámetros en C#

En esta guía, aprenderá cómo puede ejecutar/llamar a un procedimiento almacenado con parámetros en C#, lo que significa cómo puede pasar un parámetro dentro de un procedimiento almacenado.

Aprenderá todo de principio a fin en esta guía compacta. ¡Vamos a sumergirnos!

Ejecutar un Procedimiento Almacenado con Parámetros en C#

Para comprender cómo puede llamar a un procedimiento almacenado con parámetros en C#, debe comprender todos los conceptos básicos relacionados con los procedimientos almacenados.

¿Qué son y para qué se utilizan? ¿Cuáles son sus ventajas? ¿Cómo los creas y modificas?

Procedimientos almacenados en C#

Una colección de instrucciones Transact-SQL reunidas en un solo plan de ejecución es un procedimiento almacenado. Los servidores de bases de datos usan bloques de código llamados procedimientos almacenados; es una entidad precompilada que se compila una vez y se puede usar repetidamente.

Una serie de sentencias SQL puede ejecutarse secuencialmente con un procedimiento almacenado. Debemos emplear parámetros de procedimiento para ofrecer datos al proceso.

Los procedimientos almacenados utilizan el concepto de asignación de parámetros. Los nombres, tipos y direcciones de los parámetros del front-end y del procedimiento deben coincidir, y la longitud del parámetro del front-end debe ser menor o igual que la longitud del parámetro del procedimiento (que solo puede asignar parámetros).

Utilizamos la instrucción return para devolver cualquier valor de un procedimiento.

Por qué usamos procedimientos almacenados en C#

Para acceder a sus datos desde una base de datos, normalmente crea consultas SQL como seleccionar, insertar y actualizar. Tiene sentido convertir una consulta en un procedimiento almacenado si utiliza con frecuencia la misma consulta.

Cada vez que escribe una consulta, la base de datos la analiza. Si ha creado un procedimiento almacenado para él, se puede ejecutar N veces después de analizarlo solo una vez.

El rendimiento también se puede mejorar a través de rutinas almacenadas. Un procedimiento almacenado, un solo bloque de ejecución en el servidor de la base de datos, contiene toda la lógica condicional.

Ejecutar procedimiento almacenado con parámetros en C#: ejemplo de código

Los siguientes son los pasos para ejecutar el procedimiento almacenado con parámetros en C#:

  • Lo primero que debe hacer es agregar using System.Data.SqlClient; y usando System.Data; bibliotecas justo encima del programa. Estos le permitirán crear un procedimiento almacenado en un programa C#.
  • En el siguiente ejemplo de código, comenzamos a crear el procedimiento almacenado pasando la ruta de la base de datos a una cadena.
  • Después de eso, usamos el método using() para crear el objeto Conexión con y pasamos la cadena de ruta dentro.
  • Necesitamos hacer un objeto del SqlCommand. Podemos usar este objeto para utilizar propiedades de comandos SQL, como Connection.
  • Después de eso, debemos especificar el tipo de comando como StoredProcedure.
  • Para crear un procedimiento almacenado con parámetros, debemos crear un objeto de SqlParameter y usar ese objeto para definir el nombre, el tipo de datos y el valor del parámetro que queremos pasar.
  • Lo siguiente que tenemos que hacer es darle dirección. Podemos usarlo como entrada, salida o ambos.
  • Ahora, usando AddWithValue(), pase el objeto de parámetro que creó anteriormente.
  • Tenga en cuenta que todo esto debe hacerse dentro del bloque try-catch. Puede haber errores al obtener los datos que deben capturarse dentro del bloque catch.

Código de ejemplo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
namespace Stored_procedure {
  internal class Program {
    static void Main(string[] args) {
      // connection with sql
      try {
        // string for connection information
        string con_str = "pass your connection path/information";
        // create connection
        using (SqlConnection con = new SqlConnection(con_str)) {
          // create sqlcommand object
          SqlCommand cmd = new SqlCommand();
          cmd.CommandText = "Write the name of your stored prcedure";
          cmd.Connection = con;
          // specify the command type
          cmd.CommandType = CommandType.StoredProcedure;

          // create object of sqlparameter class
          SqlParameter param = new SqlParameter {
            // set the name of parameter
            ParameterName = "Write your parameter name",
            // set the type of parameter
            SqlDbType = SqlDbType.Int, Value = 2,
            // you can specify the direction of parameter input/output/inputoutput
            Direction = ParameterDirection.InputOutput
          };
          // adding parameter in command
          cmd.Parameters.AddWithValue(param);
          // open connection of db
          con.Open();
          // executing the query
          cmd.ExecuteNonQuery();
        }
      } catch (Exception e) {
        Console.WriteLine(e.Message);
      }
    }
  }
}
Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn