我正在使用i代码,但我遇到错误:从'dbnull'类型转换为'string'类型无效
公共职能Get_Talukwise_Details()
Dim table1 As New DataTable
table1.Columns.Add("Taluk", GetType(String))
table1.Columns.Add("EmpScheme", GetType(String))
iStr1 = Split(Trim(cmbCompCode.Text), "|")
iStr2 = Split(Trim(cmbLocCode.Text), "|")
Dim Add_Where_Cont As String
Add_Where_Cont = ""
Add_Where_Cont &= " Where CompCode='" & Trim(iStr1(0)) & "'"
Add_Where_Cont &= " and LocCode='" & Trim(iStr2(0)) & "'"
SSQL = ""
SSQL &= "select Taluk, "
SSQL &= "isnull(SUM(CASE EmpScheme WHEN 'left' THEN 1 ELSE 0 END),'') as Emp_left,"
SSQL &= "isnull(SUM(CASE EmpScheme WHEN 'complete' THEN 1 ELSE 0 END),'') as Emp_scheme,"
SSQL &= "isnull( SUM(CASE EmpScheme WHEN 'non-scheme' THEN 1 ELSE 0 END),'') as Emp_Non_Scheme"
SSQL &= " from employee_mst"
SSQL &= " " & Add_Where_Cont
SSQL = SSQL & "group by Taluk"
mDataSet = ReturnMultipleValue(SSQL)
For iRow = 0 To mDataSet.Tables(0).Rows.Count - 1
table1.Rows.Add( _
Trim(mDataSet.Tables(0).Rows(iRow)("Taluk")), _
Trim(mDataSet.Tables(0).Rows(iRow)("EmpScheme")))
Next
Return table1
End Function
请任何人都可以帮助我...
错误消息:从“dbnull”类型转换为“string”类型无效
错误行:
table1.Rows.Add( _
Trim(mDataSet.Tables(0).Rows(iRow)("Taluk")), _
Trim(mDataSet.Tables(0).Rows(iRow)("EmpScheme")))
答案 0 :(得分:0)
您正在将空值转换为字符串。首先看看你的查询是否给出了正确的结果。检查条件为 如果不是isdbnull(“Taluk”)=真则那么 。 。 。 你的代码 。
如果
结束答案 1 :(得分:0)
试试这个:
table1.Rows.Add( _
Trim(iif(isdbnull(mDataSet.Tables(0).Rows(iRow)("Taluk")), "", mDataSet.Tables(0).Rows(iRow)("Taluk"))), _
Trim(iif(isdbnull(mDataSet.Tables(0).Rows(iRow)("EmpScheme")), "", mDataSet.Tables(0).Rows(iRow)("EmpScheme"))))
答案 2 :(得分:0)
您可以在VB.NET代码中检查Taluk
是IsDbNull
,还是从查询中返回空字符串更合适(正如您对ISNULL
所做的那样在查询已经):
SSQL &= "SELECT COALESCE(Taluk, ''), "
' ....
SSQL = SSQL & "group by COALESCE(Taluk, '')"
也许NULL
Taluk
是数据库中的恶意值。