Ich denke, dass Ihr Problem durch die Verwendung einer ungültigen Aufzählung in Ihren Add-Methodenaufrufen ausgelöst wird
Wenn Sie diesen Code ausführen, könnten Sie feststellen, dass der OracleType für Int32 ist nicht dasselbe wie SqlDbType
OracleType e = OracleType.Int32;
int i = (int)e;
Console.WriteLine(i.ToString()); // Output = 28
SqlDbType z = SqlDbType.Int;
i = (int)z;
Console.WriteLine(i.ToString()); // Output = 8
Daher schlage ich vor, die richtige Enum für Ihren ADO.NET-Anbieter zu verwenden.
Es ist interessant festzustellen, dass das Aufrufen von Add mit SqlDbType
statt OracleType
wird akzeptiert und löst keinen Compilerzeitfehler aus. Dies geschieht, weil die Add-Methode über eine Überladung verfügt, die ein Objekt als zweiten Parameter akzeptiert (es wird verwendet, um beim Erstellen des Parameters direkt einen Wert zu übergeben).
Eine Alternative ist die Verwendung von AddWithValue
der OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);