【发布时间】:2016-03-08 14:38:59
【问题描述】:
我有一个包含复杂查询的页面。查询正常工作,但只要有 null 或空字符串,就会引发此错误。
从“DBNull”类型到“Double”类型的转换无效。
这是我的代码
If Not Me.IsPostBack Then
Dim dt As DataTable = Me.GetData("SELECT (`behaviour`+`treatment`+`charges`+`information`+`hygine`+`admission`)/6 AverageRating, COUNT(ID) RatingCount from ratings WHERE hospitalID Like '%" + var2 + "%';")
avg.Text = FormatNumber(CDbl(dt.Rows(0)("AverageRating")), 1)
totalVotes.Text = String.Format(dt.Rows(0)("RatingCount"))
End If
avg.text 在页面加载时从 db 获取值
【问题讨论】:
-
要么在强制转换前检查 null,要么修复你的 SQL 语句以将 NULL 替换为 0。并将字符串连接替换为参数化查询以避免 SQL 注入攻击