2012-06-30 23 views
1

空值我用下面的代码从数据库中检索值:处理从ResultSet中

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

但是,如果地址为null,则它写道:

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

仍显示为空 –

+0

@Joseph,它如何防止打印出空? –

+0

@HenryTaylor它应该:http://jsfiddle.net/Pc6hW/你确定'rs.fields(“地址”)评估为一个javascript的'null'值或只是一个值为“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(“地址”)永远不会评估为空或假。

因此,如果我们采取的OP评价声明:

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

它确实会随时打开了真实的;你,而不是需要检查值:

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

如果没有,则它会返回假的,不像其他的解决方案,全部命中的它同样的问题,一直在评估为真。

希望它能帮助其他任何碰到这个小问题的人。 :)