Eu acho que seu problema é gerado pelo uso de um enum inválido em suas chamadas de métodos Add
Se você executar esse código, poderá notar que o OracleType para Int32 não é o mesmo de 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
Portanto, sugiro usar a enumeração correta para seu provedor ADO.NET.
É interessante notar que chamar Add com
SqlDbType
em vez de OracleType
é aceito e não gera um erro de tempo do compilador. Isso acontece porque o método Add possui uma sobrecarga que aceita um objeto como segundo parâmetro (é usado para passar diretamente um valor ao construir o parâmetro). Uma alternativa é usar
AddWithValue
do OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);