从MS Access获取null的javascript陷阱

时间:2012-08-15 12:06:07

标签: javascript ms-access null

这应该很简单,但...... 我正在通过JavaScript填充一些带有来自MS Access db的值的选择框。所以...我遍历记录并检索名称。其中一些是有效的,一些是空的,一些是空的(无论出于何种原因)。我想捕获空值和空值,以便它们不会显示在选择选项中。这就是我所拥有的:

var SQL = "SELECT DISTINCT design_lead FROM projects";
rs.Open(SQL, cn);
    if(!rs.bof) {
        rs.MoveFirst();
    }
var i=0;
while(!rs.eof) {
    desLead = rs("design_lead");
    if(desLead==null || desLead==undefined || desLead=='') {
        i=i+1;
        rs.MoveNext();
    }
    else {
        $("#leadName").append("<option>"+desLead+"</option>")
        i=i+1;
        rs.MoveNext();
    }
}
rs.Close();

问题是null始终显示在选项列表中。我已经搜索了几天,但没有发现任何有用的东西......我尝试了很多不同的陷阱(类型等等),但没有任何作用。

1 个答案:

答案 0 :(得分:1)

如何不首先返回空值:

var SQL = "SELECT DISTINCT design_lead FROM projects WHERE design_lead IS NOT NULL";

另外,你可以稍微缩小while循环,因为if和else情况下只有一行不同:

while(!rs.eof) {
    desLead = rs("design_lead");
    if(desLead) {
        $("#leadName").append("<option>"+desLead+"</option>")
    }
    i=i+1;
    rs.MoveNext();
}

if(desLead)你正在测试desLead是否“真实”,注意nullundefined和空字符串都是“假的”。

如果由于某种原因可能会返回实际的字符串"null",那么就这样做:

if(desLead && desLead != "null")