Myślę, że Twój problem jest spowodowany użyciem nieprawidłowego wyliczenia w wywołaniach Add Method
Jeśli uruchomisz ten kod, możesz zauważyć, że OracleType dla Int32 to nie to samo co TypSqlDb
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
Proponuję więc użyć poprawnego wyliczenia dla swojego dostawcy ADO.NET.
Warto zauważyć, że wywołanie Add z SqlDbType
zamiast OracleType
jest akceptowane i nie zgłaszaj błędu czasu kompilatora. Dzieje się tak, ponieważ metoda Add ma przeciążenie, które akceptuje obiekt jako drugi parametr (jest używany do bezpośredniego przekazywania wartości podczas konstruowania parametru).
Alternatywą jest użycie AddWithValue
OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);