1

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を使用しています

ありがとう。

4

2 に答える 2

5

関数からの結果を選択して実行する select ステートメントを作成する必要があります。

"SELECT * FROM FunctionName(@Value1, @Value2)"

または、関数呼び出しをプロシージャでラップしてプロシージャを呼び出すこともできます。私はこれを好みます。

于 2008-11-02T12:33:15.943 に答える
3

スカラー関数の場合は次のようになります

SELECT FuncName(@Param1)

一方、テーブル値関数は

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