Asp-Classic

ASP Classic 檢查 Recordset 中的數據庫 NULL 值

  • February 7, 2018

我得到一個 ADODB 記錄集,我需要檢查 ASP Classic 中可為空的列的值。如何判斷它是否為空?ASP Classic 中不存在 AFAIK IsDBNull,所有 Null 測試人員都詢問對像是否為空,而不是其值。

例如,我有RS包含 column 的Recordset RS("myCol")。在數據庫中,myCol 是一個可為空的位,因此值可以是{0, 1, NULL}.

我該如何測試RS("myCol") = NULL?看來,如果我從字面上執行該比較,它只會告訴我對象 RS(“myCol”) 是否為 Null,而不是請求的欄位的值是否為 “database” null。

試試這個,如果您使用的是 MS SQL,它應該可以工作

IF IsNull(RS("myCol")) = False THEN
 IF RS("myCol") THEN
   Response.Write "myCol is TRUE"
 ELSE
   Response.Write "myCol is False"
 END IF
ELSE
 Response.Write "myCol is NULL"
END IF

或嘗試使用

IF RS("myCol")<>"" THEN
 IF RS("myCol") THEN
   Response.Write "myCol is TRUE"
 ELSE
   Response.Write "myCol is False"
 END IF
ELSE
 Response.Write "myCol is NULL"
END IF

myCol對於類型為 的數據庫列,包含該列nullable bit的 Recordset 將出現以下情況:RS

  • 如果數據庫值為 0,則RS("myCol") = Empty = False = 0
  • 如果數據庫值為 1,則RS("myCol") = True = 1
  • 如果數據庫值為 Null,則IsNull(RS("myCol")) = True = 1.

另一種解決方案:

  • 如果數據庫值為 0 則Len(RS("myCol")&"") = 5
  • 如果數據庫值為 1 則Len(RS("myCol")&"") = 4
  • 如果數據庫值為 Null 則Len(RS("myCol")&"") = 0

引用自:https://stackoverflow.com/questions/38927714