1

有没有办法使用 Enterprise Library 执行 SQL 自定义函数?我试过 Database.ExecuteScalar() 但由于某种原因它返回 null。

这是我的功能:

Database db = DatabaseFactory.CreateDatabase("ConnectionString");
DbCommand cmd = db.GetStoredProcCommand("FunctionName");
db.AddInParameter(cmd, "Value1", DbType.String, Param1Value);
db.AddInParameter(cmd, "Value2", DbType.String, Param2Value);
return Convert.ToBoolean(db.ExecuteScalar(cmd)); 

这里 db.ExecuteScalar(cmd) 方法返回 null。存储过程不会发生这种情况。

顺便说一句,我使用的是 4.0 版

谢谢。

4

2 回答 2

5

您必须创建一个 select 语句,从函数中选择结果并执行它。

“选择 * FROM 函数名(@Value1,@Value2)”

或者您可以将您的函数调用包装在一个过程中并调用该过程,我更喜欢这个。

于 2008-11-02T12:33:15.943 回答
3

对于标量函数,它将是

SELECT FuncName(@Param1)

而表值函数将是

SELECT * FROM FuncName(@Param1)
于 2008-11-02T13:48:26.353 回答