2010-11-10 21 views
17

Tengo una función definida en SQL Server (que toma una cadena y un int) ¿cómo la llamo con ADO.NET?¿Cómo llamo a una función TSQL de ado.net

(Si es 100% mismo que llamar a un procedimiento almacenado, por favor dilo, ya que hay una gran cantidad de ejemplos en llamar a procedimientos almacenados aproximadamente)

Respuesta

26

La única diferencia es que debe tener un parametro especial añadió para el valor de retorno

Ver: MySqlCommand call function

using (var connection = new SqlConnection("ConnectionString")) 
    using (var command = connection.CreateCommand()) 
    { 
    command.CommandType = CommandType.StoredProcedure; 
    command.CommandText = "MyFunction"; 

    SqlParameter returnValue = command.Parameters.Add("@RETURN_VALUE", SqlDbType.Int); 
    returnValue.Direction = ParameterDirection.ReturnValue; 

    connection.Open(); 
    command.ExecuteNonQuery(); 

    return returnValue.Value; 
    } 
Cuestiones relacionadas