Aufrufen von SQL-definierten Funktionen in C# mit Inline-SQL
In SQL Server können benutzerdefinierte Funktionen (UDFs) die Datenmanipulation und -analyse verbessern Fähigkeiten. Um eine skalare UDF aus C#-Code aufzurufen, ist es wichtig, den richtigen Ansatz zu verwenden.
Betrachten Sie die folgende skalare TSQL-UDF:
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
Um diese Funktion in C#-Code aufzurufen, kann man versuchen um eine gespeicherte Prozedur-ähnliche Syntax zu verwenden:
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; }
Dieser Ansatz ist jedoch falsch. Um eine UDF aufzurufen, muss Inline-SQL innerhalb eines SqlCommand-Objekts verwendet werden:
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
Es ist wichtig, die CommandType-Eigenschaft zu entfernen, da UDFs keine gespeicherten Prozeduren sind.
Der geänderte Code würde dies tun sehen wie folgt aus:
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; }
Durch den Einsatz von Inline-SQL zum Aufrufen der UDF können Entwickler die Leistungsfähigkeit von effektiv nutzen benutzerdefinierte Funktionen in ihren C#-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie rufe ich eine benutzerdefinierte SQL Server-Funktion (UDF) aus C# korrekt auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!