企业库中的SQL自定义函数

时间:2008-11-02 11:54:53

标签: c# .net sql-server enterprise-library

有没有办法用Enterpise 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版

感谢。

2 个答案:

答案 0 :(得分:5)

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

“SELECT * FROM FunctionName(@ Value1,@ Value2)”

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

答案 1 :(得分:2)

对于标量函数,它将是

SELECT FuncName(@Param1)

而表格值函数将是

SELECT * FROM FuncName(@Param1)