Мисля, че проблемът ви е повдигнат от използването на невалидно изброяване във вашите извиквания за добавяне на методи
Ако изпълните този код, можете да забележите, че OracleType за Int32 не е същото като 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
Затова предлагам да използвате правилния enum за вашия ADO.NET доставчик.
Интересно е да се отбележи, че извикването на Add с SqlDbType
вместо OracleType
се приема и не предизвиква грешка във времето на компилатора. Това се случва, защото методът Add има претоварване, което приема обект като втори параметър (използва се за директно предаване на стойност при конструирането на параметъра).
Алтернатива е да използвате 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);