2012-06-12 2 views
2

을 제공합니다. 하지만 데이터베이스 내에 그러한 사용자가 없을 때 null 예외가 발생합니다. 그가 데이터베이스에 없다면 나를 알 수없는 사용자로 작성해야합니다. 지정된 ID와 아무 사용자가 ExecuteScalar의 반환 값이 DBNull.Value없는이 있다면내가이 코드가 나에게 널 예외

+0

잠깐, 당신은 정보가 존재하지 않는 경우 데이터베이스에서 정보를 얻으려면? 그건 말이 안되요. 찾고있는 행이 데이터베이스에 존재하지 않기 때문에'ExecuteScalar'에 대한 호출이 null을 반환하기 때문에 null 참조 예외가 발생합니다. 설명에서 정확히 예상 한 것입니다. – CodingGorilla

답변

1

는 :

var result = cmd.ExecuteScalar(); 
if (result != DBNull.Value) 
{ 
    var tokens = ((String)result).Split('|'); 
    name = tokens[0]; 
    lastname = tokens[1]; 
} 
else 
{ 
    name = "unknown"; 
    lastname = "user"; // or whatever 
} 
+0

이 코드가 작동합니다. DBNull.Value'를'null'로 변경해야했습니다. –