Die Umwandlung von DbCommand-Objekt OracleCommand-Objekt

Habe ich geerbt, eine Funktion in einer ASP.NET (C#) Anwendung, in dem der Autor verwendet die Microsoft.Practices.EnterpriseLibrary.Data library, aber ich wurde gebeten es zu ändern, so dass es verwendet System.Data.OracleClient. Diese Funktion verwendet eine gespeicherte Prozedur form einer Datenbank. itemName, und openDate sind string-Parameter, den die Funktion annimmt. PKG_AUCTION_ITEMS.IsAuctionItem ist die gespeicherte Prozedur name der Funktion.

Hier ist der code, den ich erhielt:

    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();
    }

Hier ist mein code:(connstr ist der connection-string)

    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();
    }

Ich verstehe nicht, was der Unterschied zwischen AddInParameter und AddParameter ist, und was diese Zeile macht:

db.AddParameter(cmdDB, "ret", DbType.String, 2, ParameterDirection.ReturnValue, false, 0, 0, null, DataRowVersion.Current, null);

Bin ich auf dem richtigen Weg? Kann mir jemand bitte helfen?
Dank

Warum wurden Sie gebeten es zu ändern? Sollten Sie in der Lage gewesen, tojust ändern Sie die config-Datei von Oracle.
Microsoft.Praxis-Bibliothek ist nicht ein standard-Bibliothek verwendet, hier also die build-engine nicht hat.Weil dieser, das Projekt kann nicht erstellt werden, auf dem server.
Vermutlich haben Sie sich zur Installation der Enterprise Library auf Ihrem web-server zu machen, damit es funktioniert.

InformationsquelleAutor zohair | 2009-09-18

Schreibe einen Kommentar