2012-06-30 1 views
1

Я использовал следующие коды для получения значений из базы данных:Обработка нулевых значений из ResultSet

if(!rs.bof){ 
    rs.MoveFirst(); 
    while (!rs.eof){ 
     output.innerHTML += rs.fields("Name") + "," 
     output.innerHTML += rs.fields("Address") + "<br>" 
     rs.MoveNext(); 
    } 
} 

Но если адрес является недействительным, то он пишет:

Sherlock Holmes, 221B Baker Street 
James Moriarty, null 

Я попытался с помощью:

if(rs.fields("Address") != null && rs.fields("Address") != "") 

Что нужно сделать, чтобы нулевые значения отображались как пустая строка?

ответ

0

изменить код, как этот

if(!rs.bof){ 
    rs.MoveFirst(); 
    while (!rs.eof){ 
     var name = rs.fields("Name") ; 
     var address = rs.fields("Address") ; 
     output.innerHTML += (name == null) ? "" : name ; 
     output.innerHTML += (address == null) ? "" : address + "<br>" ; 
     rs.MoveNext(); 
    } 
} 
+0

Не работает. –

2

Попробуйте это:

if(!rs.bof){ 
    rs.MoveFirst(); 
    while (!rs.eof){ 
     output.innerHTML += (rs.fields("Name") || "") + "," 
     output.innerHTML += (rs.fields("Address") || "") + "<br>" 
     rs.MoveNext(); 
    } 
} 

Использовать logical Or, чтобы изменить его в пустую строку

+0

По-прежнему отображается Null –

+0

@Joseph, как бы это предотвратить от печати? –

+0

@HenryTaylor это должно: http://jsfiddle.net/Pc6hW/ Вы уверены, что 'rs.fields (« Адрес »)' оценивает значение «null» javascript или просто строку значения «null»? –

0

Написать вспомогательную функцию, чтобы держать вещи аккуратно:

function field_maybe(rs, fname) { 
    return rs.fields(fname) || ""; 
} 

... 

if(!rs.bof){ 
    rs.MoveFirst(); 
    while (!rs.eof){ 
     output.innerHTML += field_maybe(rs, "Name") + "," 
     output.innerHTML += field_maybe(rs, "Address") + "<br>" 
     rs.MoveNext(); 
    } 
} 
0

попробовать это:

if(!rs.bof){ 
    rs.MoveFirst(); 
    while (!rs.eof){ 
     var name= (rs.fields("Name") === null)?"":rs.fields("Name"); 
     var address= (rs.fields("Address") === null)?"":rs.fields("Address"); 
     output.innerHTML += name + "," 
     output.innerHTML += address + "<br>" 
     rs.MoveNext(); 
    } 
} 
0

Это довольно старая тема/вопрос, но я на самом деле была такая же проблема, и был мертв, что я сделал это раньше. Ни один из этих ответов не казался подходящим для актуальной проблемы.

Проблема в том, что rs.fields ("Address") никогда не будет оцениваться как null или false.

Так что, если мы принимаем OPS заявление оценка:

if(rs.fields("Address") != null && rs.fields("Address") != "") 

Это действительно всегда Усильте верно; вместо этого вы должны проверить значение:

if(rs.fields("Address").value){...} 

, если его нет он будет возвращать ложь, в отличие от других решений, все попали в такую ​​же проблему ее всегда оценивать как истинные.

Надеюсь, что это поможет любому, кто попадает в эту маленькую проблему. :)

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

  • Нет связанных вопросов^_^