Heim >Datenbank >MySQL-Tutorial >Wie rufe ich SQL Defined Functions (UDFs) korrekt aus C# auf?

Wie rufe ich SQL Defined Functions (UDFs) korrekt aus C# auf?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-25 16:11:09263Durchsuche

How to Correctly Call SQL Defined Functions (UDFs) from C#?

Aufrufen von SQL-definierten Funktionen in C#

Das Abfragen einer Datenbank mithilfe von SQL-definierten Funktionen aus C#-Code erfordert besondere Überlegungen beim Zugriff auf benutzerdefinierte Funktionen ( UDFs) innerhalb einer SQL-Abfrage. So können Sie eine T-SQL-Skalarfunktion mit dem Namen „Tcupom“ aus Ihrem C#-Code aufrufen:

SQL-Funktion:

create function TCupom (@cupom int)
returns float
as
begin
    declare @Tcu float;

    select @Tcu = sum (total) from alteraca2 where pedido = @cupom 

    if (@tcu is  null)
        set @tcu = 0;

    return @tcu;
end

C#-Code:

Fehler im Originalcode:
Der Der ursprüngliche C#-Code machte zwei Fehler:

  1. Der Name der UDF wurde direkt als Befehl aufgerufen, was nicht die korrekte Syntax für den Zugriff auf UDFs ist.
  2. Der CommandType wurde auf StoredProcedure gesetzt, obwohl dies der Fall sein sollte Text für UDFs.

Korrigiert Code:
Der korrigierte Code unten zeigt, wie die Funktion „Tcupom“ aus C# korrekt aufgerufen wird:

public void TotalCupom(int cupom)
{
    float SAIDA;
    SqlDataAdapter da2 = new SqlDataAdapter();

    if (conex1.State == ConnectionState.Closed)
    {
        conex1.Open();
    }

    SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom;

    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}

Erklärung:

  • Das SqlCommand-Objekt wird mit einer SQL-Abfrageanweisung erstellt, die den vollständig qualifizierten Namen der UDF enthält. dbo.Tcupom.
  • Das SqlParameter-Objekt wird mit dem Eingabeparameternamen der UDF, @code, definiert und sein Wert wird auf den Cupom-Parameter gesetzt, der an die C#-Methode übergeben wird.
  • Die ExecuteScalar() Die Methode wird verwendet, um die UDF auszuführen und ihr Skalarergebnis abzurufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich SQL Defined Functions (UDFs) korrekt aus C# auf?. 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