我使用以下代码从数据库中检索值:
if( !rs.bof ){
rs.MoveFirst();
while ( !rs.eof ){
output.innerHTML += rs.fields( "Name" ) + ","
output.innerHTML += rs.fields( "Address" ) + "<br>"
rs.MoveNext();
}
}
但是如果Address为null则写入:
Sherlock Holmes, 221B Baker Street
James Moriarty, null
我尝试过使用:
if( rs.fields( "Address" ) != null && rs.fields( "Address" ) != "" )
如何使空值显示为空字符串?
答案 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
将其更改为空字符串
答案 1 :(得分: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();
}
}
答案 2 :(得分: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();
}
}
答案 3 :(得分: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();
}
}
答案 4 :(得分:0)
这是一个相当古老的主题/问题,但实际上我遇到了同样的问题,而且我确实以前做过这个问题。这些答案似乎都不适合实际问题。
问题是rs.fields(&#34; Address&#34;)永远不会评估为null或false。
因此,如果我们采取OP评估声明:
if( rs.fields( "Address" ) != null && rs.fields( "Address" ) != "" )
它确实会变得真实;你需要检查值:
if(rs.fields( "Address" ).value){...}
如果没有,它将返回false,不像其他解决方案都会遇到同样的问题,它总是评估为真。
希望它可以帮助其他任何人解决这个小问题。 :)