>데이터 베이스 >MySQL 튜토리얼 >C#에서 SQL 정의 함수(UDF)를 올바르게 호출하는 방법은 무엇입니까?

C#에서 SQL 정의 함수(UDF)를 올바르게 호출하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-25 16:11:09262검색

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# 코드에는 두 가지 실수가 있었습니다.

  1. UDF 이름을 명령으로 직접 호출했는데, 이는 UDF에 액세스하기 위한 올바른 구문이 아닙니다.
  2. CommandType을 Text로 사용해야 하는 경우 StoredProcedure로 설정 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.