Ik denk dat uw probleem wordt veroorzaakt door het gebruik van een ongeldige opsomming in uw Add-methodes-aanroepen
Als u deze code uitvoert, zou u kunnen opmerken dat de OracleType voor Int32 is niet hetzelfde als 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
Ik raad dus aan om de juiste opsomming te gebruiken voor uw ADO.NET-provider.
Het is interessant op te merken dat het aanroepen van Add met SqlDbType
in plaats van OracleType
wordt geaccepteerd en veroorzaakt geen compileertijdfout. Dit gebeurt omdat de methode Add een overbelasting heeft die een object als tweede parameter accepteert (het wordt gebruikt om direct een waarde door te geven bij het construeren van de parameter).
Een alternatief is het gebruik van AddWithValue
van de OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);