有没有办法用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版
感谢。
答案 0 :(得分:5)
你必须创建一个select语句,从函数中选择结果并执行它。
“SELECT * FROM FunctionName(@ Value1,@ Value2)”
或者您可以在程序中包装函数调用并调用该过程,我更喜欢这个。
答案 1 :(得分:2)
对于标量函数,它将是
SELECT FuncName(@Param1)
而表格值函数将是
SELECT * FROM FuncName(@Param1)