2017-01-23 2 views
0
string sqlCmd = @"SELECT r.row_id AS resp_id, 
         r.name AS resp_name 
        FROM srb.s_resp r, 
         srb.s_per_resp pr, 
         srb.s_contact c, 
         srb.s_user u 
        WHERE r.row_id = pr.resp_id 
        AND u.row_id = c.row_id 
        AND c.person_uid = pr.per_id 
        AND UPPER(u.login) = @login 
       ORDER BY r.name"; 

OracleConnection con = new OracleConnection(getConnectionString(username, password)); 
OracleCommand command = con.CreateCommand(); 

conSiebel.Open(); 
command.CommandType = CommandType.Text; 
command.Connection = con; 
command.CommandText = sqlCmd; 

command.Parameters.Add(new OracleParameter("login", username)); 

IDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection); 
reader.Close(); 

Я пытаюсь добавить параметр @login в приведенном выше запросе, но он не добавлял, Может кто-нибудь помочь мне исправить это?Oracle параметризованных запросов в C#

+0

Первое, что я увидел, это то, что новому параметру входа никогда не назначается 'ParameterDirection'. – CDove

+0

[Плохие привычки пинать: использование JOIN-проектов старого стиля] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - стиль старого стиля * разделенный запятыми список таблиц * был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** 25 лет ** назад) и его использование не рекомендуется –

ответ

2

Используйте вместо двоеточия (:login).

string sqlCmd = @"SELECT r.row_id AS resp_id, 
            r.name AS resp_name 
          FROM srb.s_resp r, 
            srb.s_per_resp pr, 
            srb.s_contact c, 
            srb.s_user u 
          WHERE r.row_id = pr.resp_id 
            AND u.row_id = c.row_id 
            AND c.person_uid = pr.per_id 
            AND UPPER(u.login) = :login 
            ORDER BY r.name"; 
+0

Спасибо, что это работает для меня. –

+0

Рад это услышать. Пожалуйста, не забудьте принять ответ, если это было исправление. – chadnt

Смежные вопросы