Heim >Datenbank >MySQL-Tutorial >Wie rufe ich eine benutzerdefinierte SQL-Funktion (UDF) aus C# auf?
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!