Creo que su problema surge por el uso de una enumeración no válida en sus llamadas de métodos Agregar
Si ejecuta este código, podría notar que Tipo de Oracle para Int32 no es lo mismo que SqlDbTipo
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
Por lo tanto, sugiero usar la enumeración correcta para su proveedor ADO.NET.
Es interesante notar que llamar a Agregar con SqlDbType
en lugar de OracleType
se acepta y no genera un error de tiempo del compilador. Esto sucede porque el método Add tiene una sobrecarga que acepta un objeto como segundo parámetro (Se usa para pasar directamente un valor al construir el parámetro).
Una alternativa es usar AddWithValue
de la OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);