簡體   English   中英

從“ DBNull”類型到“ Double”類型的轉換無效

[英]Conversion from type 'DBNull' to type 'Double' is not valid

在我的代碼中,我理解查詢獲取空值,並引發此錯誤。 但是由於我的查詢有點復雜,所以我不明白如何檢查空值並避免此錯誤。 請幫助我更正此查詢。

SELECT (SUM(charges) + SUM(behaviour) + SUM(admission) + SUM(properInformation) + SUM(hygine) + SUM(treatment))/(count(doctorID) * 6) AverageRating, COUNT(ID) RatingCount from ratings where doctorID = '" + doctorID + "'

如果您希望查詢不返回NULL ,則可以將表達式用IFNULL包圍,以將可能的NULL轉換為0,例如:

SELECT IFNULL((SUM(charges) + SUM(behaviour) + SUM(admission) + 
               SUM(properInformation) + SUM(hygine) + SUM(treatment))
              /(count(doctorID) * 6), 0) AverageRating, 
       COUNT(ID) RatingCount 
FROM ratings 
WHERE doctorID = '" + doctorID + "'

如果您確實知道查詢正確返回了空值,則可以使用try-catch塊,如下所示:

Try
Dim dt As DataTable = Me.GetData("SELECT (SUM(charges) + SUM(behaviour) + SUM(admission) + SUM(properInformation)
Catch ex As Exception
MsgBox("Error while fetching data" & vbCrLf & ex.Message)
End Try

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM