Je pense que votre problème est soulevé par l'utilisation d'un enum invalide dans vos appels de méthodes Add
Si vous exécutez ce code, vous remarquerez peut-être que Type Oracle pour Int32 n'est pas le même que 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
Donc, je suggère d'utiliser l'énumération correcte pour votre fournisseur ADO.NET.
Il est intéressant de noter que l'appel de Add avec SqlDbType
au lieu de OracleType
est accepté et ne génère pas d'erreur de temps de compilation. Cela se produit parce que la méthode Add a une surcharge qui accepte un objet comme deuxième paramètre (elle est utilisée pour passer directement une valeur lors de la construction du paramètre).
Une alternative consiste à utiliser 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);