Konvertieren OracleParameter.Wert Int32
Ich habe eine gespeicherte Prozedur aufrufen, das geht wie folgt:
using (OracleConnection con = new OracleConnection(ConfigurationManager.AppSettings["Database"]))
using (OracleCommand cmd = new OracleCommand("Package.Procedure", con))
{
Int32 existsCount;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("successCount", OracleDbType.Int32, 0, ParameterDirection.InputOutput);
cmd.Parameters.Add("BusinessId", OracleDbType.Int64, listRec.BusinessId, ParameterDirection.Input);
con.Open();
cmd.ExecuteScalar();
con.Close();
existsCount = Convert.ToInt32(cmd.Parameters["successCount"].Value);
return (existsCount);
}
Aber auf dieser Linie:
existsCount = Convert.ToInt32(cmd.Parameters["successCount"].Value);
Wirft er die Exception "Unable to cast object of type 'Oracle.DataAccess.Typen.OracleDecimal' type 'System.IConvertible'."
Irgendwelche Gedanken? Danke.
InformationsquelleAutor felixmm | 2010-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was
Nun, das ist nicht dumm. Konvertieren.... Sollte die bessere Wahl, wenn verfügbar. Da int.Parse() im Grunde genau das, analysiert den string-Wert, der sollte schon ein bisschen mehr Aufwand. Jedoch, eine Sache, die könnte auch funktionieren (glaube nicht, es in den ersten Platz) ist: existsCount = (int)cmd.Parameter["successCount"].Wert, wenn es eine explizite Konvertierung zur Verfügung gestellt von der Oracle-lib.
Autsch, keine TryParse ?
Warum TryParse? Wenn OracleDecimal kann analysiert werden, Sie sollten in Ordnung sein. Wenn der Rückgabewert außerhalb des int32-Grenzen, eine Ausnahme zu werfen ist besser als nur schweigend ignorieren die Tatsache. In diesem speziellen Fall int.Parse() ist besser (nur meine Meinung).
Konvertierung eines numerischen Typs string nur zu konvertieren zurück zu numerischen ist einfach falsch.
InformationsquelleAutor Jürgen Steinblock
Können Sie auch versuchen:
Dies ist die richtige Antwort nicht wissen, warum es den ganzen Weg auf den Boden.
InformationsquelleAutor Karim Budhwani
Ist es effizienter zu nutzen
InformationsquelleAutor Brad
Schlage ich vor, Sie zu konvertieren
String
, und nach, dass Sie konvertieren ausString
zuInteger
.InformationsquelleAutor Doberon