1
如果从Access SQL查询中找到的结果字段为空,则以下函数将引发异常。Access SQL查询返回空白记录时防止出现异常
如果查询变成空的,我只想retvalue =无,但我得到一个错误,说我不能给一个字符串赋一个空值。所以我把它放在一个catch中,但catch会滞后于应用程序,因为这个函数经常被使用,并且查询结果通常是空的。
一个例子的情况是:
checkRecord(“注释”,“表1”,“名”,“史蒂夫”)
该函数返回备注字段的记录与头名表1中的“Steve”的值。如果Steve的笔记是空的(他们通常是),则该函数将抛出关于将字符串转换为空的异常。
我该如何声明retvalue =无,如果返回的数据库记录是空的,而不必做一个捕获?
Public Shared Function CheckRecord(Table As String, refcol As String, refcolvalue As String, targetcol As String)
Dim retvalue As String
Using cn As New OleDbConnection(mystr)
cn.Open()
Dim custCMDcr As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT [" & targetcol & "] FROM [" & Table & "] WHERE [" & refcol & "] =" & refcolvalue)
custCMDcr.Connection = cn
Try
retvalue = CType(custCMDcr.ExecuteScalar(), String).ToString
Catch fail As Exception
retvalue = Nothing
End Try
Return retvalue
End Using
End Function
使用IsDbNull测试返回值 – Plutonix