我正在使用MySQL数据库从ASP运行查询,我想根据结果创建一个变量(ssResult)和一个人的姓名(fullname),如果记录不存在我想分配文本'N / A'变量,下面的代码,我目前使用函数getOther作为我的数据库连接,它传递列名“fullname”:
ssResult = getOtherElse("SELECT fullname FROM table WHERE id=" & inArr(j), "fullname")
以下是函数getOtherElse的代码,它仅在返回结果时有效,但在结果为空时不起作用:
Function getOtherElse(inSQL, getColumn)
Dim conn, rstemp
Set conn = Server.CreateObject("ADODB.Connection")
conn.open myDSN
Set Session("lp_conn") = conn
Set rstemp = Server.CreateObject("ADODB.Recordset")
rstemp.Open inSQL, conn
if not rstemp.eof then
rstemp.movefirst
getOtherElse=rstemp.fields(getColumn)
else
getOtherElse="N/A"
end if
rstemp.close
set rstemp=nothing
conn.close
set conn=nothing
End Function
谢谢!
答案 0 :(得分:1)
您可以尝试更改行
if not rstemp.eof then
与
if rstemp.RecordCount > 0 then
答案 1 :(得分:0)
为什么不将SQL更改为仅使用名字拉出结果,这样“N / A”将适用:
sResult = getOtherElse("SELECT fullname FROM table WHERE id=" & inArr(j), "fullname AND fullname<>''")
答案 2 :(得分:0)
替换此代码块:
if not rstemp.eof then
rstemp.movefirst
getOtherElse=rstemp.fields(getColumn)
else
getOtherElse="N/A"
end if
使用此代码块:
Dim output
output = "N/A"
If Not rstemp.eof Then
rstemp.movefirst
value = rstemp.fields(getColumn)
If trim(value) = "" Then
value = "N/A"
End If
End If
getOtherElse = value
上面的代码总是假设没有返回任何内容,直到连接实际将其设置为返回。然后检查该值是否为空字符串,并将该值也设置为“N / A”