2017-01-23 11 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パラメータ化クエリ

+0

最初に私が見たことは、新しいログインパラメータに決して「ParameterDirection」が割り当てられていないことです。 – CDove

+0

[古いスタイルのジョインを使って蹴るのが悪い](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - ANSI - ** 92 ** SQL標準(** 25年**前)のold * style *カンマ区切りのテーブル*スタイルのリストが*適切な* ANSI 'JOIN'構文に置き換えられました。使用はお勧めです。 –

答えて

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

関連する問題