2008-11-02 32 views
0

有沒有使用Enterpise Library執行SQL自定義函數的方法?我試過Database.ExecuteScalar(),但由於某種原因它返回null。企業庫中的SQL自定義函數

這是我的函數:

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版

謝謝。

回答

5

你必須創建一個select語句,它從函數中選擇結果並執行它。

「SELECT * FROM使用functionName(@值1,@值2)」

或者您也可以在過程中包裝你的函數調用並調用程序,我喜歡這個。

2

對於標量函數將是

SELECT FuncName(@Param1) 

而表值函數將是

SELECT * FROM FuncName(@Param1)