首頁 > 資料庫 > mysql教程 > 如何從 C# 正確呼叫 SQL 定義函數 (UDF)?

如何從 C# 正確呼叫 SQL 定義函數 (UDF)?

Mary-Kate Olsen
發布: 2024-12-25 16:11:09
原創
262 人瀏覽過

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

在C# 中呼叫SQL 定義的函數

在C# 程式碼中使用SQL 定義的函數查詢資料庫在存取使用者定義的函數時需要特別注意( SQL 查詢中的UDF)。以下是如何從 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#程式碼犯了兩個錯誤:

  1. 直接將UDF的名字當作指令調用,這不是訪問UDF的正確語法。
  2. 將 CommandType 設定為 StoredProcedure,而其應為 Text UDF。

更正的程式碼:
下面修正的程式碼示範如何正確呼叫「Tcupom」函數C#:

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,其值設定為傳遞給 C# 方法的 cupom 參數。
  • ExecuteScalar() 方法用於執行 UDF 並擷取其標量結果。

以上是如何從 C# 正確呼叫 SQL 定義函數 (UDF)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板