Я разрабатываю веб-приложение ASP.NET с использованием Oracle 11g на бэкэнд. Я написал отдельный SP для извлечения данных пользователя и флажков из таблицы базы данных. Вы можете найти ниже фрагмент кода в FetchUserLoginData() Метод:Почему ORA-01403: Нет данных Найдено ошибка
String spName = "FETCH_USER_LOGIN_ROLE_DATA";
OracleCommand dbCheckLogin=new OracleCommand();
OracleDataReader LoginDataReader=null;
dbCheckLogin = dbCon.GetDBCommand(spName,dbCheckLogin);
dbCheckLogin.Parameters.Add(new OracleParameter("USERID", LoginID));
dbCheckLogin.Parameters.Add(new OracleParameter("USERPWD", Password));
dbCheckLogin.Parameters.Add(new OracleParameter("USERGUI_ID", OracleType.VarChar,2000)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("ADMIN_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("CLOSED_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("LOCKED_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("LOGGEDIN_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("USER_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
dbCheckLogin.Parameters.Add(new OracleParameter("SEASED_FLG", OracleType.VarChar,20)).Direction = ParameterDirection.Output;
LoginDataReader = dbCheckLogin.ExecuteReader();
while (LoginDataReader.Read())
{
user.USER_SL = Convert.ToString(LoginDataReader["USER_SL"]);
user.ISADMIN=LoginDataReader["ISADMIN"].ToString();
user.ISCLOSED = LoginDataReader["ISCLOSED"].ToString();
user.ISLOCKED = LoginDataReader["ISLOCKED"].ToString();
user.ISLOGGEDIN = LoginDataReader["ISLOGGEDIN"].ToString();
user.ISPOWERUSER = LoginDataReader["ISPOWERUSER"].ToString();
user.ISSEASED= LoginDataReader["ISSEASED"].ToString();
}
Теперь проблема в том, когда я попытался запустить без SP, просто писать и выполнение прямого запроса, нет никаких проблем, она извлекает данные из базы данных отлично Что ж. В случае SP у меня есть исключение: Нет обнаруженных данных. Я даю правильное имя пользователя и пароль каждый раз, но он не может получать какие-либо данные. Даже я пытался запустить процедуру из SQLDeveloper или PL/SQL и не обнаружил никаких проблем. Проблема заключается только в том, что я пытался выполнить SP с кодирования на стороне сервера.
Есть ли причина, по которой вы проходили «LoginID» дважды? Вы использовали одно и то же значение для имени пользователя и пароля? – codingbiz
@codingbiz: это была ошибка типографии. Я исправил его в коде, но не работает. DataReader не может извлекать данные из таблицы. – jchoudhury
Попробуйте добавить команду вывода в sqlcommand FETCH_USER_LOGIN_ROLE_DATA', а затем выяснить, что это проблема в текущем sql. – jarvanJiang