не получает выходную переменную хранимой процедуры через ExecuteReader - PullRequest
1 голос
/ 10 января 2011

вот мой код-

 using (SqlDataReader sqlDataReader = ExecuteReader(CommandType.StoredProcedure, StoredProcedures.AuthenticateUser, sqlParameter))
        {
            isAuthenticated = Convert.ToBoolean(sqlParameter[2].Value);
            if (isAuthenticated)
            {
                if (sqlDataReader.Read())
                {
                    User = new UserEntity();
                    DbHelper.GetEntity(sqlDataReader, User);
                }                 
            }
        }

Я всегда получаю isAuthenticated как ложь, потому что sqlParameter[2].Value постоянно равен нулю, но когда я выполняю свой запрос с ExecuteNonQuery, это дает мне значение, но в этом случае я не могу заполнить entity.suggest, пожалуйста.

1 Ответ

0 голосов
/ 10 января 2011

Я считаю, что выходные параметры недоступны, пока вы не прочитаете все результаты из DataReader.Попробуйте вместо этого:

using (SqlDataReader sqlDataReader = ExecuteReader(CommandType.StoredProcedure, 
       StoredProcedures.AuthenticateUser, sqlParameter))
{
     var newUser = new UserEntity();
     if (sqlDataReader.Read())
     {             
         DbHelper.GetEntity(sqlDataReader, User);
     }

     isAuthenticated = Convert.ToBoolean(sqlParameter[2].Value);         
     if (isAuthenticated)
     {
         User = newUser;
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...