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

C# から SQL ユーザー定義関数 (UDF) を呼び出す方法

Mary-Kate Olsen
リリース: 2024-12-27 17:41:11
オリジナル
533 人が閲覧しました

How to Call a SQL User-Defined Function (UDF) from C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート