ホームページ >データベース >mysql チュートリアル >C# から SQL 定義関数 (UDF) を正しく呼び出す方法は?

C# から SQL 定義関数 (UDF) を正しく呼び出す方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-25 16:11:09263ブラウズ

How to Correctly Call SQL Defined Functions (UDFs) from C#?

C# での SQL 定義関数の呼び出し

C# コードから SQL 定義関数を使用してデータベースをクエリするには、ユーザー定義関数にアクセスするときに特別な考慮事項が必要です ( UDF) を SQL クエリ内で使用します。 C# コードから「Tcupom」という名前の T-SQL スカラー関数を呼び出す方法は次のとおりです:

SQL 関数:

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# コード:

オリジナルのエラーコード:
元の C# コードには 2 つの間違いがありました:

  1. UDF の名前をコマンドとして直接呼び出しています。これは、UDF にアクセスするための正しい構文ではありません。
  2. CommandType を Text にする必要がある場合に StoredProcedure に設定するUDFs.

修正コード:
以下の修正コードは、C# から "Tcupom" 関数を正しく呼び出す方法を示しています:

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;
}

説明:

  • SqlCommand オブジェクトは、UDF の完全修飾名 dbo.Tcupom を含む SQL クエリ ステートメントで構築されます。
  • SqlParameter オブジェクトは、UDF の入力パラメータ名 @code で定義され、その値は cupom に設定されます。 C# メソッドに渡されるパラメータ。
  • ExecuteScalar() メソッドは、UDF を実行し、そのスカラーを取得するために使用されます。結果。

以上がC# から SQL 定義関数 (UDF) を正しく呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。