Myslím, že váš problém je způsoben použitím neplatného výčtu ve volání metod Add
Pokud spustíte tento kód, můžete si všimnout, že OracleType for Int32 není totéž jako 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
Navrhuji tedy použít správný výčet pro vašeho poskytovatele ADO.NET.
Je zajímavé poznamenat, že volání Add pomocí SqlDbType
místo OracleType
je přijat a nevyvolává chybu času kompilátoru. K tomu dochází, protože metoda Add má přetížení, které přijímá objekt jako druhý parametr (používá se k přímému předání hodnoty při vytváření parametru).
Alternativou je použití AddWithValue
z OracleParameterCollection
command.Parameters.AddWithValue("@course_Id", course_Id);
command.Parameters.AddWithValue("@question", question);
command.Parameters.AddWithValue("@posterName", posterName);
command.Parameters.AddWithValue("@blogdate", blog_date);