如何从 ado.net 调用 TSQL 函数

2022-01-23 00:00:00 sql-server ado.net

我在 SQL Server 中定义了一个函数(接受一个字符串和一个 int)我如何用 ADO.NET 调用它?

I have a function defined in SQL Server (that takes a string and a int) how do I call it with ADO.NET?

(如果和调用存储过程100%一样,请直说,调用存储过程的例子很多)

(If it is 100% same as calling a stored proc, please just say so, as there a lot of examples on calling stored procs about)

推荐答案

唯一的区别是你必须为返回值添加一个特殊的参数

The only difference is that you must have a special paramter added for the return value

参见:MySqlCommand调用函数

  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;
  } 

相关文章