У меня есть динамический SQL для поиска записей в Oracle, и анализ анализа кода VS2017 предупреждает об использовании параметризованного SQL-запроса для этой строки (1-я строка, этот код работает):
string SQL = "SELECT " + string.Join(",", my_columns.ToArray()) + " FROM MyTable ";
string where_condition = " WHERE ";
//the rest of code follows as this...
if (!string.IsNullOrEmpty(textbox1.Text))
{
SQL = string.Concat(SQL, where_condition, " Name like :name");
cmd.Parameters.Add(new OracleParameter("name", string.Concat("%", textbox1.Text, "%")));
where_condition = " AND ";
} //...
Итак, я попыталсядля имен столбцов в качестве параметров из-за предупреждения, но затем я получаю ORA-01036- недопустимая ошибка имени / номера переменной:
string SQL = "SELECT :columns FROM MyTable ";
cmd.Parameters.Add(new OracleParameter("columns", string.Join(",",
my_columns.ToArray())));
string where_condition = " WHERE ";
Что не так, возможно, имена столбцов не могут быть переданы в качестве параметров?Или есть другой способ избежать предупреждения при анализе кода VS?