sql >> Databasteknik >  >> RDS >> Oracle

System.Data.OracleClient.OracleException:ORA-01036:olagligt variabelnamn/nummer

Jag tror att ditt problem uppstår genom användningen av en ogiltig enum i dina Lägg till metoder-anrop

Om du kör den här koden kan du märka att OracleType för Int32 är inte samma sak som 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

Så jag föreslår att du använder rätt enum för din ADO.NET-leverantör.

Det är intressant att notera att man anropar Add med SqlDbType istället för OracleType accepteras och ger inte upp ett kompilatortidsfel. Detta händer eftersom Add-metoden har en överbelastning som accepterar ett objekt som andra parameter (den används för att skicka ett värde direkt när parametern konstrueras).

Ett alternativ är att använda AddWithValue av OracleParameterCollection

   command.Parameters.AddWithValue("@course_Id", course_Id);
   command.Parameters.AddWithValue("@question", question);
   command.Parameters.AddWithValue("@posterName", posterName);
   command.Parameters.AddWithValue("@blogdate", blog_date);



  1. Hur man ändrar datum- och tidsformat i T-SQL

  2. Oracle skapa tabell med hjälp av med klausul

  3. Samma namn för formulärfält och databastabellfält?

  4. MySQL Query Error 1054