"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Llame correctamente al método de la función personalizada SQL (UDF) desde C#

Llame correctamente al método de la función personalizada SQL (UDF) desde C#

Publicado el 2025-04-18
Navegar:530

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

llamando a las funciones definidas de SQL en C#

consultar una base de datos utilizando funciones definidas SQL de C# Código requiere consideraciones específicas al acceder a las funciones definidas por el usuario (UDFS) dentro de una consulta SQL. Así es como puede llamar a una función escalar t-sql llamada "tcupom" desde su código C#:

sql función:

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ódigo:

en el código original:
el código C# original cometido dos errores:

  1. llamando al nombre de la UDF directamente como un comando, que no es el sintetín correcto para acceder Udfs.
  2. configurando el comandtype en storedprocedure cuando debe ser texto para udfs.

código corregido:
el código corregido a continuación demuestra cómo llamar correctamente la función "tcupom" de c#:

[&] y]. Cupom) { Float Saida; SqldataAdapter da2 = new SqlDataAdapter (); if (conex1.state == ConnectionState.Closed) { conex1.open (); } SqlCommand Totalf = new SqlCommand ("Seleccionar dbo.tcupom (@code)", Conex1); SqlParameter code1 = new SQLParameter ("@código", sqldbtype.int); Code1.Value = Cupom; SahaA = Totalf.ExecutesCalar (); regreso Saida; }
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;
}

Explanation:

    The SqlCommand object is constructed with an SQL query statement that includes the UDF's fully qualified name, dbo.Tcupom.
  • The SqlParameter object is defined with the UDF's input parameter name, @code, and its El valor se establece en el parámetro CupOM pasado al método C#.
  • El método ExecutesCalar () se usa para ejecutar la UDF y recuperar su resultado escalar.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3