0

これは単純なはずですが...JavaScriptを介してMS Access dbからの値をいくつかの選択ボックスに入力しています。だから... レコードをループして名前を取得します。これらの一部は有効で、一部は空で、一部は (何らかの理由で) null です。空の値と null の値をトラップして、選択オプションに表示されないようにしたい。ここに私が持っているものがあります:

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 が表示されることです。数日間検索しましたが、役立つものは見つかりませんでした...そして、さまざまなトラップ (typeof など) を試しましたが、何も機能しません。

4

1 に答える 1

1

そもそもnull値を返さないのはどうですか:

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

また、if と else のケースで異なる行が 1 つしかないことを考えると、while ループを少し縮小することもできます。

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")
于 2012-08-15T12:10:47.313 に答える