Ausführen einer gespeicherten Prozedur mit Parametern in C#

Haider Ali 12 Oktober 2023
Ausführen einer gespeicherten Prozedur mit Parametern in C#

In dieser Anleitung erfahren Sie, wie Sie eine gespeicherte Prozedur mit Parametern in C# ausführen/aufrufen können, was bedeutet, wie Sie einen Parameter innerhalb einer gespeicherten Prozedur übergeben können.

In diesem kompakten Ratgeber erfahren Sie alles von oben bis unten. Tauchen wir ein!

Ausführen einer gespeicherten Prozedur mit Parametern in C#

Um zu verstehen, wie Sie eine gespeicherte Prozedur mit Parametern in C# aufrufen können, müssen Sie alle Grundlagen zu den gespeicherten Prozeduren verstehen.

Was sind sie und zu welchem ​​Zweck werden sie verwendet? Was sind ihre Vorteile? Wie erstellt und verändert man sie?

Gespeicherte Prozeduren in C#

Eine Sammlung von Transact-SQL-Anweisungen, die zu einem einzelnen Ausführungsplan zusammengefasst werden, ist eine gespeicherte Prozedur. Datenbankserver verwenden Codeblöcke, die als gespeicherte Prozeduren bezeichnet werden. Es ist eine vorkompilierte Entität, die einmal kompiliert wird und wiederholt verwendet werden kann.

Eine Reihe von SQL-Anweisungen kann nacheinander mit einer gespeicherten Prozedur ausgeführt werden. Wir müssen Prozedurparameter verwenden, um dem Prozess Daten anzubieten.

Gespeicherte Prozeduren verwenden das Konzept der Parameterzuordnung. Die Namen, Typen und Richtungen der Front-End- und Prozedurparameter müssen übereinstimmen, und die Front-End-Parameterlänge muss kleiner oder gleich der Prozedurparameterlänge sein (die nur Parameter zuordnen kann).

Wir verwenden die return-Anweisung, um einen beliebigen Wert aus einer Prozedur zurückzugeben.

Warum wir Stored Procedures in C# verwenden

Um auf Ihre Daten aus einer Datenbank zuzugreifen, erstellen Sie normalerweise SQL-Abfragen wie select, insert und update. Es ist sinnvoll, eine Abfrage in eine gespeicherte Prozedur umzuwandeln, wenn Sie häufig dieselbe Abfrage verwenden.

Jedes Mal, wenn Sie eine Abfrage schreiben, analysiert die Datenbank sie. Wenn Sie eine gespeicherte Prozedur dafür erstellt haben, kann sie N-mal ausgeführt werden, nachdem sie nur einmal analysiert wurde.

Die Leistung kann auch über gespeicherte Routinen verbessert werden. Eine gespeicherte Prozedur, ein einzelner Ausführungsblock auf dem Datenbankserver, enthält die gesamte bedingte Logik.

Gespeicherte Prozedur mit Parametern in C# ausführen: Codebeispiel

Im Folgenden sind die Schritte zum Ausführen der gespeicherten Prozedur mit Parametern in C# aufgeführt:

  • Das erste, was Sie tun müssen, ist das Hinzufügen von using System.Data.SqlClient; und using System.Data; Bibliotheken direkt über dem Programm. Damit können Sie eine gespeicherte Prozedur in einem C#-Programm erstellen.
  • Im folgenden Codebeispiel beginnen wir mit der Erstellung der gespeicherten Prozedur, indem wir den Pfad der Datenbank an eine Zeichenfolge übergeben.
  • Danach haben wir die using()-Methode verwendet, um das Connection-Objekt con zu erstellen und den Pfad-String darin übergeben.
  • Wir müssen aus dem SqlCommand ein Objekt machen. Wir können dieses Objekt verwenden, um SQL-Befehlseigenschaften wie Connection zu verwenden.
  • Danach müssen wir den Befehlstyp als StoredProcedure angeben.
  • Um eine gespeicherte Prozedur mit Parametern zu erstellen, müssen wir ein Objekt von SqlParameter erstellen und dieses Objekt verwenden, um den Namen, den Datentyp und den Wert des Parameters zu definieren, den wir übergeben möchten.
  • Als nächstes müssen wir ihm eine Richtung geben. Wir können es entweder als Eingang, Ausgang oder beides verwenden.
  • Übergeben Sie nun mit AddWithValue() das zuvor erstellte Parameterobjekt.
  • Denken Sie daran, dass all dies innerhalb des try-catch-Blocks geschehen muss. Beim Abrufen der Daten, die im catch-Block abgefangen werden müssen, können Fehler auftreten.

Beispielcode:

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