内联查询过程

时间:2012-04-02 15:36:53

标签: asp.net .net oracle plsqldeveloper

如何在.net中编写登录查询程序:

StringBuilder sql;
  sql = new StringBuilder("Select User From Login_user ");
  sql.Append(" Where User_Name_upper = '" + strUserName.ToString().ToUpper() + "'");
  OracleCommand cmdUserDetails = new OracleCommand(sql.ToString(), conSODEV);

1 个答案:

答案 0 :(得分:1)

就像这样:

create or replace procedure usernameExists (username in VARCHAR ) is      
    l_user user_tables.owner%type;
BEGIN
    Select User 
    into l_user
    From Login_user 
    where User_Name_upper = upper(username);
EXCEPTION
    when NO_DATA_FOUND then
        raise_application_error(-20000, 'User does not exist!');
END;

然后你会这样称呼它:

 OracleCommand cmdUserDetails = new OracleCommand("usernameExists", conSODEV);
 cmdUserDetails.Parameters.AddWithValue("username",username_variable);
 IDataReader reader = cmdUserDetails.ExecuteReader();

注1 :我不是Oracle开发人员,但应该非常接近。

注意2 :如果用户名存在,上述过程将只返回记录。您提到了“登录过程”,但您的原始查询也没有任何检查密码的代码。如果要实现“登录过程”,则需要在select语句中匹配用户名和密码,还需要确保正确检查区分大小写。