Heim >Datenbank >MySQL-Tutorial >Wie rufe ich eine benutzerdefinierte SQL-Funktion (UDF) aus C# auf?

Wie rufe ich eine benutzerdefinierte SQL-Funktion (UDF) aus C# auf?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 17:41:11563Durchsuche

How to Call a SQL User-Defined Function (UDF) from C#?

Aufrufen einer benutzerdefinierten SQL-Funktion (UDF) in C#

Sie möchten mit einer SQL-Skalarfunktion aus Ihrem C#-Code interagieren, und der folgende C#-Code wurde bereitgestellt:

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

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

    SqlCommand Totalf = new SqlCommand("Tcupom", conex1);
    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom ;
    Totalf.CommandType = CommandType.StoredProcedure ;
    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}

Es tritt jedoch ein Fehler auf. Der Grund dafür ist, dass Sie im Gegensatz zu gespeicherten Prozeduren eine UDF in SQL nicht direkt aus C# aufrufen können.

Lösung:

Um eine UDF in C# aufzurufen, müssen Sie Sie müssen eine Inline-SQL-Anweisung verwenden. Hier ist der angepasste Code:

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

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

    // Use an inline SQL statement with the UDF
    SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);

    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom;

    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}

In diesem geänderten Code wird eine neue Inline-SQL-Anweisung verwendet:

SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);

Diese Anweisung verweist auf die UDF mit ihrem vollständig qualifizierten Namen (dbo.Tcupom ) und enthält einen Parameter für den @code-Eingabewert. Mit diesem Ansatz können Sie die Tcupom-UDF aufrufen und das Ergebnis in Ihrem C#-Code abrufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich eine benutzerdefinierte SQL-Funktion (UDF) 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