C# での SQL ユーザー定義関数 (UDF) の呼び出し
C# コードから SQL スカラー関数を操作したいとします。次の 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; }
ただし、 エラー。その理由は、ストアド プロシージャとは異なり、C# から SQL で UDF を直接呼び出すことができないためです。
解決策:
C# で UDF を呼び出すには、次のようにします。インライン SQL ステートメントを使用する必要があります。調整されたコードは次のとおりです。
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; }
この変更されたコードでは、新しいインライン SQL ステートメントが使用されています。
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
このステートメントは、完全修飾名 (dbo.Tcupom) で UDF を参照します。 ) には、@code 入力値のパラメーターが含まれています。このアプローチを使用すると、Tcupom UDF を呼び出し、C# コードで結果を取得できます。
以上がC# から SQL ユーザー定義関数 (UDF) を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。