Heim > Backend-Entwicklung > C++ > Wie rufe ich den Rückgabewert einer gespeicherten Prozedur in C# ab?

Wie rufe ich den Rückgabewert einer gespeicherten Prozedur in C# ab?

Linda Hamilton
Freigeben: 2025-01-20 01:17:13
Original
974 Leute haben es durchsucht

How to Retrieve a Stored Procedure's Return Value in C#?

Rückgabewert der gespeicherten Prozedur in C# abrufen

In diesem Artikel wird beschrieben, wie Sie eine gespeicherte Prozedur aus einer C#-Windows-Anwendung aufrufen und ihren Rückgabewert erhalten. Die gespeicherte Prozedur usp_GetNewSeqVal wird zum Generieren neuer Sequenzwerte verwendet. Obwohl Sie auf einige Lösungen im Internet verweisen, können Sie den Rückgabewert immer noch nicht erfolgreich ermitteln.

Das Problem besteht darin, dass der Richtungsparameter ReturnValue im Befehl fehlt. Um dies zu beheben, müssen Sie die folgenden Parameter hinzufügen:

<code class="language-csharp">var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;</code>
Nach dem Login kopieren

Setzen Sie die Richtung des Parameters auf ParameterDirection.ReturnValue, um SqlCommand anzuweisen, ihn als Variable zu deklarieren und ihm den Rückgabewert der gespeicherten Prozedur zuzuweisen. Dies ähnelt der in SQL verwendeten Syntax (exec @ReturnValue = spMyProcedure...).

Durch Hinzufügen dieses Parameters führt der cmd.ExecuteReader()-Aufruf die gespeicherte Prozedur aus und speichert den Rückgabewert in returnParameter. Sie können dann als returnParameter.Value darauf zugreifen.

Hier ist der Code mit den notwendigen Änderungen:

<code class="language-csharp">using (SqlConnection conn = new SqlConnection(getConnectionString()))
using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandText = parameterStatement.getQuery();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("SeqName", "SeqNameValue");

    var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
    returnParameter.Direction = ParameterDirection.ReturnValue;

    conn.Open();
    cmd.ExecuteNonQuery();
    var result = returnParameter.Value;
}</code>
Nach dem Login kopieren

Durch diese Änderung können Sie den Rückgabewert der gespeicherten Prozedur erfolgreich abrufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich den Rückgabewert einer gespeicherten Prozedur in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage