2013-08-21 3 views
-4

Я создал таблицу N_Roles_Users в моей базе данных, я хочу показать ее значение, если имя пользователя совпадает с существующим пользователем входа.Исключение Название: Проверить, является ли объект Null

Я написал этот код ниже. Но он генерирует исключение, проверяющее, является ли объект 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. 

установить allroles.user_name = "some value" перед тем

эта линия

temp = allroles.user_name.ToList(); 

Днем Coding :)

+0

привет, он работает, но ничего не показывать. –

+0

Здравствуйте, Зоя. Что вы имеете в виду, ничего не показывает. На консоли ничего не напечатано? –

+0

Да, я написал textbox1.Text = temp [1] .ToString(); ... Но ничего не напечатано –

0

Проверьте это условие

// CurrentUser = "UserA";

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' является нулевым, вы все равно получите NRE здесь – Sayse

Смежные вопросы