インライン SQL を使用した C# での SQL 定義関数の呼び出し
SQL Server では、ユーザー定義関数 (UDF) を使用してデータの操作と分析を強化できます能力。 C# コードからスカラー UDF を呼び出すには、正しいアプローチを採用することが重要です。
次の 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
この関数を C# コードで呼び出すには、次のように試みます。ストアド プロシージャのような構文を使用するには:
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; }
ただし、このアプローチは正しくありません。 UDF を呼び出すには、SqlCommand オブジェクト内でインライン SQL を使用する必要があります。
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
UDF はストアド プロシージャではないため、CommandType プロパティを削除することが重要です。
変更されたコードは次のようになります。
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; }
開発者は、インライン SQL を使用して UDF を呼び出すことで、 C# アプリケーションでユーザー定義関数の機能を効果的に活用できます。
以上がC# から SQL Server ユーザー定義関数 (UDF) を正しく呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。