2011-01-10 5 views
1

sqlParameter[2].Value 항상 널 (null)이기 때문에 항상 isAuthenticated이 거짓으로 얻을하지만 난 ExecuteNonQuery 내 쿼리를 실행할 때 나에게 가치를 제공하지만여기가 ExecuteReader

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); 
       }     
      } 
     } 

내 코드 -을 통해 저장 프로 시저 출력 변수를받지 못하고 그 경우 엔 엔티티를 채울 수 없습니다. 제발.

답변

0

나는 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; 
    } 
} 
관련 문제