作成者が を使用していた ASP.NET (C#) アプリケーションの関数を継承しましたが、を使用するMicrosoft.Practices.EnterpriseLibrary.Data library
ように変更するように依頼されましたSystem.Data.OracleClient
。この関数は、データベースからストアド プロシージャを使用します。itemName
、およびopenDate
は、関数が受け取る文字列パラメーターです。PKG_AUCTION_ITEMS.IsAuctionItem
は、ストアド プロシージャの関数名です。
受け取ったコードは次のとおりです。
string result = String.Empty;
Database db = DatabaseFactory.CreateDatabase("OraData");
using (DbCommand cmdDB = db.GetStoredProcCommand("PKG_AUCTION_ITEMS.IsAuctionItem"))
{
db.AddInParameter(cmdDB, "vItemName", DbType.String, itemName);
db.AddInParameter(cmdDB, "vOpenDate", DbType.String, openDate);
db.AddParameter(cmdDB, "ret", DbType.String, 2, ParameterDirection.ReturnValue, false, 0, 0, null, DataRowVersion.Current, null);
db.ExecuteNonQuery(cmdDB);
result = cmdDB.Parameters["ret"].Value.ToString();
}
これが私のコードです:(connstr
接続文字列です)
string result = String.Empty;
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("PKG_AUCTION_ITEMS.IsAuctionItem",conn);
myCmd.CommandType = CommandType.StoredProcedure;
using (myCmd)
{
myCmd.Parameters.AddWithValue("vItemName", itemName);
myCmd.Parameters.AddWithValue("vOpenDate", openDate);
myCmd.Parameters.AddWithValue("ret", ???);
myCmd.ExecuteNonQuery();
result = myCmd.Parameters["ret"].Value.ToString();
}
AddInParameter と AddParameter の違いと、この行の機能がわかりません。
db.AddParameter(cmdDB, "ret", DbType.String, 2, ParameterDirection.ReturnValue, false, 0, 0, null, DataRowVersion.Current, null);
私は正しい軌道に乗っていますか?誰でも助けてもらえますか?ありがとう