Я застрял в этой проблеме некоторое время и прошел несколько учебников без успеха.Как создать параметризованный запрос?
Как вы используете параметризованные запросы в C# с Oracle.ManagedDataAccess.dll
, а не старыми Oracle.DataAccess.dll
?
Код я попытался это:
string query = @"SELECT Count(*) FROM @table WHERE @custNM = '@nm'";
OracleCommand mySearch = new OracleCommand(query, newConn);
mySearch.Prepare();
mySearch.Parameters.Add("@table", "cust");
mySearch.Parameters.Add("@custNM", "nm");
mySearch.Parameters.Add("@nm", "SAM");
Я также попробовал без раздела и остроумием mySearch.Prepare
: вместо @
и без @
префиксов строки запроса. Еще одна вещь, которую я пробовал, заключалась в удалении @
/:
в начале строки Add
, например.
mySearch.Parameters.Add("nm", "SAM");
Моя конечная цель состоит в том, чтобы использовать переменные для передачи значений вместо простого строкового текста для оператора, если это проще сделать.
идентификаторы объектов не могут быть использованы в качестве PARAMATERS –
Другим распространенным «Гоча», чтобы быть в курсе, что ODP.NET по умолчанию «привязывать положением» означает, что он делает не заботятся о том, какие имена вы используете для параметров, только заботится, в каком порядке вы их «добавляете». Если вы хотите вместо bindbyname, для этого есть свойство. –