2013-08-21 6 views
-4

데이터베이스에 N_Roles_Users 테이블을 만들었습니다. 사용자 이름이 기존 로그인 사용자와 일치하면 값을 표시하고 싶습니다.예외 제목 : 객체가 Null인지 확인

아래 코드를 작성했습니다. 그러나 object가 Null인지 검사하는 예외가 발생합니다.

// currentUser="UserA"; 
public List<string> GetUserRoles(string currentUser) 
{ 
     N_Roles_Users allroles = new N_Roles_Users(); //N_Roles_Users is database table name. 
     List<string> roleslist = new List<string>(); 
     List<char> temp = new List<char>(); 
     temp = allroles.user_name.ToList(); 
     List<char> tempa = new List<char>(); 
     tempa = allroles.role_name.ToList(); 

     for (int i = 0; i < temp.Count; i++) // Loop through List with for 
     { 
      if (currentUser == temp[i].ToString()) 
      { 
       roleslist.Add(tempa[i].ToString()); 
       MessageBox.Show(tempa[i].ToString()); 
      } 
     } 

     return roleslist; 
} 

아무에게도이 문제를 해결하는 방법을 안내해 줄 수 있습니까?

+1

오류가 발생하는 라인 –

+0

어떤 라인이 예외로 생성됩니까? stacktrace와 정확한 예외 타입 인'System.InvalidOperationException'을 주거나'System.NullReferenceException' 또는 어떤 예외입니까? – SynerCoder

+1

user_name은 무엇입니까? 그것은 어떤 방법이나 속성입니까? –

답변

0
temp = allroles.user_name.ToList(); is the line of exception i guess. 

:

+0

안녕하세요, 실행되지만 아무것도 표시하지 않습니다. –

+0

안녕 Zoya. 쇼가 의미하는 바는 무엇입니까? 콘솔에 아무것도 인쇄되지 않았거나 무엇이 있습니까? –

+0

예, textbox1.Text = temp [1] .ToString();을 작성했습니다. ...하지만 아무 것도 인쇄되지 않았습니다. –

0

확인이 조건

// currentUser = "사용자 A"를 코딩

temp = allroles.user_name.ToList(); 

행복이 라인 전에 allroles.user_name = "some value"을 설정;

public List<string> GetUserRoles(string currentUser) 
     { 
     N_Roles_Users allroles = new N_Roles_Users(); 
     List<string> roleslist = new List<string>(); 
     List<char> temp = new List<char>(); 
     **if(allroles.user_name.ToList()!=null && allroles.user_name.ToList().Count!=0) 
      { 
     temp = allroles.user_name.ToList(); 
     }** 
     List<char> tempa = new List<char>(); 
     tempa = allroles.role_name.ToList(); 

     for (int i = 0; i < temp.Count; i++) // Loop through List with for 
      { 
      if (currentUser == temp[i].ToString()) 
       { 
       roleslist.Add(tempa[i].ToString()); 
       MessageBox.Show(tempa[i].ToString()); 
       } 
      } 
     return roleslist; 
     } 
+0

'user_name'이 null이면 여전히 NRE를 얻습니다. – Sayse

관련 문제