从类型“DBNull”到类型“String”的强制转换无效,该如何处理
从类型“DBNull”到类型“String”的强制转换无效
各位高手请帮我解决这个问题,我想了半天也没有发现在什么地方有错误,但是一调试就出这个问题即“从类型“DBNull”到类型“String”的强制转换无效”。代码如下:
前台:
<asp:TemplateColumn HeaderText= "所属项目 ">
<ItemTemplate>
<%# toStr(Container.DataItem( "IID "),Container.DataItem( "myItem "))%>
</ItemTemplate>
</asp:TemplateColumn>
后台:
Protected Function toStr(ByVal tmpint As Integer, ByVal tmpstr As String) As String
If tmpstr <> " " Then
Dim reValue As String
Dim myArr As String() = tmpstr.ToString.Split(New Char() { ", "})
Dim tab As DataTable = myDB.GetTab( "select * from Iteminfo order by id ")
For i As Integer = 0 To myArr.Length - 1
Dim tmpFtrow As DataRow() = tab.Select( "ID= " & CInt(myArr(i)))
reValue += tmpFtrow(0)( "Name ") & ", "
Next
If Right(reValue, 1) = ", " Then reValue = Mid(reValue, 1, reValue.Length - 1)
Return reValue
Else
If tmpint = 0 Then
Return " "
Else
Return myDB.GetOne( "select name from iteminfo where id= " & tmpint)
End If
End If
End Function
------解决方案--------------------
用String.IsNullOrEmpty或者先判断是不是DBNull
if(Convert.IsDBNull())
------解决方案--------------------
reValue += tmpFtrow(0)( "Name ") & ", "
tmpFtrow(0)( "Name ") 如果是DBNULL就错了
可以用楼上办法先判断。
各位高手请帮我解决这个问题,我想了半天也没有发现在什么地方有错误,但是一调试就出这个问题即“从类型“DBNull”到类型“String”的强制转换无效”。代码如下:
前台:
<asp:TemplateColumn HeaderText= "所属项目 ">
<ItemTemplate>
<%# toStr(Container.DataItem( "IID "),Container.DataItem( "myItem "))%>
</ItemTemplate>
</asp:TemplateColumn>
后台:
Protected Function toStr(ByVal tmpint As Integer, ByVal tmpstr As String) As String
If tmpstr <> " " Then
Dim reValue As String
Dim myArr As String() = tmpstr.ToString.Split(New Char() { ", "})
Dim tab As DataTable = myDB.GetTab( "select * from Iteminfo order by id ")
For i As Integer = 0 To myArr.Length - 1
Dim tmpFtrow As DataRow() = tab.Select( "ID= " & CInt(myArr(i)))
reValue += tmpFtrow(0)( "Name ") & ", "
Next
If Right(reValue, 1) = ", " Then reValue = Mid(reValue, 1, reValue.Length - 1)
Return reValue
Else
If tmpint = 0 Then
Return " "
Else
Return myDB.GetOne( "select name from iteminfo where id= " & tmpint)
End If
End If
End Function
------解决方案--------------------
用String.IsNullOrEmpty或者先判断是不是DBNull
if(Convert.IsDBNull())
------解决方案--------------------
reValue += tmpFtrow(0)( "Name ") & ", "
tmpFtrow(0)( "Name ") 如果是DBNULL就错了
可以用楼上办法先判断。