Встроенный запрос к процедуре - PullRequest
1 голос
/ 02 апреля 2012

Как мне написать процедуру для запроса входа в систему .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 Ответ

1 голос
/ 02 апреля 2012

Это было бы что-то вроде это:

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 : Приведенная выше процедура просто возвратит записи, если имя пользователя существует.Вы упомянули «процедуру входа в систему», но ваш исходный запрос не содержит кода, который также проверяет пароль.Если вы хотите внедрить «процедуру входа в систему», вам нужно сопоставить и имя пользователя, и пароль в операторе выбора, а также убедиться, что вы правильно проверяете чувствительность к регистру.

...