【发布时间】:2013-12-16 09:53:41
【问题描述】:
我只是想知道是否有人可以帮助我解决以下问题。我正在使用 VB。 NET 和 SQL Server,并希望在我的代码中包含一些错误处理。
我正在执行一个 SQL SUM 命令,如果数据库中有匹配项,该命令可以正常返回。但是,当我指定的字符串不匹配时,我会收到“从类型 'DBNull' 到类型 'Integer' 的转换无效。”
我了解发生此错误是因为我指定的数据库中没有任何值。
以下是我正在使用的代码,其中不包含错误处理:
Dim dbCount1 As Integer
SQLConnectLog()
strSQLog = "SELECT SUM ([TotalTime]) FROM [Line1Log] WHERE ([State] = 'Test')"
dbCommandLog = New SqlCommand(strSQLog, dbConnectionLog)
dbCount1 = dbCommandLog.ExecuteScalar()
SQLDisconnectLog()
lblTest.Text = dbCount1
现在我尝试了几种不同的方式来使用isDBNull,但都无济于事,例如:
Dim dbCount1 As Integer
SQLConnectLog()
strSQLog = "SELECT SUM ([TotalTime]) FROM [Line1Log] WHERE ([State] = 'Test')"
dbCommandLog = New SqlCommand(strSQLog, dbConnectionLog)
If IsDBNull(dbCount1 = dbCommandLog.ExecuteScalar()) Then
SQLDisconnectLog()
lblTest.Text = dbCount1
Else
lblTest.Text = "0"
End If
我上面用的方法还是不行。
我确定我需要使用 isDBNull 函数,但不知道该放在哪里。
如果有人能给我一些关于如何做到这一点的见解,我将不胜感激。
提前致谢:)
【问题讨论】: