Heim >Backend-Entwicklung >C++ >Wie rufe ich mit ADO.NET einen Rückgabewert aus einer gespeicherten Prozedur in C# ab?

Wie rufe ich mit ADO.NET einen Rückgabewert aus einer gespeicherten Prozedur in C# ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-20 01:21:09934Durchsuche

How to Retrieve a Return Value from a Stored Procedure in C# using ADO.NET?

Rufen Sie eine gespeicherte Prozedur mit Rückgabewert in C# auf

Eine häufige Notwendigkeit beim Zugriff auf eine Datenbank besteht darin, gespeicherte Prozeduren aus einer Anwendung aufzurufen, insbesondere solche, die numerische Werte zurückgeben. In diesem Artikel wird gezeigt, wie Sie mit ADO.NET eine gespeicherte Prozedur aufrufen, die einen ganzzahligen Wert zurückgibt, und das Ergebnis in einer C#-Anwendung abrufen.

Gespeicherte Prozedur

Betrachten Sie die gespeicherte Prozedur usp_GetNewSeqVal, die den nächsten Wert einer Sequenz mit einem Sequenznamen abruft. Es empfängt den Parameter @SeqName als Eingabe und gibt den neuen Sequenzwert zurück.

C#-Code

Um diese gespeicherte Prozedur aufzurufen und den Rückgabewert abzurufen, können wir den folgenden Code verwenden:

<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");

    // @ReturnVal 可以是任何名称
    var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
    returnParameter.Direction = ParameterDirection.ReturnValue;

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

Wichtige Details

  • SqlCommand Konfigurieren Sie mit dem richtigen Befehlstext und -typ.
  • Dem Befehl werden
  • Eingabeparameter@SeqName hinzugefügt.
  • Fügen Sie einen neuen Parameter @ReturnVal hinzu, dessen Richtung auf ParameterDirection.ReturnValue eingestellt ist. Dadurch wird der Befehl angewiesen, eine Variable in der gespeicherten Prozedur zu erstellen und ihr den Rückgabewert zuzuweisen.
  • Mit ExecuteNonQuery wird die Verbindung geöffnet und die Abfrage ausgeführt.
  • Schließlich kann der Rückgabewert aus dem Attribut returnParameter.Value abgerufen werden.

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

Stellungnahme:
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