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;
undusing 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 dasConnection
-Objektcon
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 wieConnection
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 imcatch
-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);
}
}
}
}
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