Search code examples
c#sqlodacoraclecommand

Odac ORA-00911: invalid character


I am writing a C# code that connects to ODAC. I think my query got no errors, but I get this error, I don't know how to solve.

This is my query

comm.CommandText = "SELECT * FROM ZAEDBA WHERE USER_ID = '" + login_id + 
                   "' AND APPID = '" + app_id + "' ;"; 

Can any one figure out what is wrong in here?


Solution

  • Your query is vulnerable for a security issue called SQL injection!

    You should NEVER use string concatenation for building a query from strings (some SQL, some parameters)... Use always parameterized queries...

    Sample code:

    comm.BindByName = true;
    comm.CommandText = "SELECT * FROM ZAEDBA WHERE USER_ID = :login_id AND APPID = :app_id";
    comm.Parameters.AddWithValue ("login_id", login_id);
    comm.Parameters.AddWithValue ("app_id", app_id);