I have an Oracle database query that works perfectly when I add parameters in a specific sequence, but fails when I change the order. Here’s my functional code:
queryString = @"SELECT * FROM COMPANY_USERS where upper(username)= upper(:username) AND company_id= :CompanyId";
myCommand = new OracleCommand();
if (database.GetConnection().State == ConnectionState.Open)
{
myCommand.CommandText = queryString;
myCommand.Connection = database.GetConnection();
myCommand.Parameters.Add("username", OracleDbType.Varchar2);
myCommand.Parameters["username"].Value = userName;
myCommand.Parameters.Add("CompanyId", OracleDbType.Varchar2);
myCommand.Parameters["CompanyId"].Value = companyId;
dataReader = myCommand.ExecuteReader();
dataReader.Read();
}
But when I switch the parameter order like this:
myCommand.Parameters.Add("CompanyId", OracleDbType.Varchar2);
myCommand.Parameters["CompanyId"].Value = companyId;
myCommand.Parameters.Add("username", OracleDbType.Varchar2);
myCommand.Parameters["username"].Value = userName;
The query stops working completely. Do Oracle parameters need to be added in ascending alphabetical order or in the same sequence as they appear in the SQL statement?