Tengo un problema con el enlace del siguiente parámetro. La conexión funciona porque la he probado sin usar parámetros. Sin embargo, el valor de la consulta antes de ejecutarse sigue usando '@userName' en lugar de 'jsmith', por ejemplo.OracleCommand SQL Parámetros Enlace
¿Cuál es el problema? ¿No es esta la manera correcta de ir por ahí?
public static String GetFullName(String domainUser)
{
DataTable dT;
String fullName = "";
OracleConnection db = DatabaseAdapter.GetConn();
db.Open();
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM user_profile WHERE domain_user_name = '@userName'", db);
oraCommand.BindByName = true;
oraCommand.Parameters.Add(new OracleParameter("@userName", domainUser));
OracleDataReader oraReader = null;
oraReader = oraCommand.ExecuteReader();
if (oraReader.HasRows)
{
while (oraReader.Read())
{
fullName = oraReader.GetString(0);
}
}
else
{
return "No Rows Found";
}
oraReader.Close();
db.Close();
db.Dispose();
return fullName;
}
EDITAR: Agregué @ al nombre del campo del parámetro, pero aún no lo corrige.
Eso devuelve un error de expresión faltante ORA-00936. Eso es un varchar en la base de datos, entonces debería tener '', supongo. –
@RyanSammut, verifique mi respuesta actualizada, y el enlace que he publicado – Habib
Puede ser que ayude: http: // stackoverflow.com/questions/7316850/ora-00936-missing-expression-when-reading-from-database-with-dotconnect-driver. –