asp.net无法强制转换类型为';System.String';输入';System.Data.DataTable';使用VB
我有一个问题,为什么我会出错: 无法将“System.String”类型的对象强制转换为System.Data.DataTable类型asp.net无法强制转换类型为';System.String';输入';System.Data.DataTable';使用VB,asp.net,vb.net,Asp.net,Vb.net,我有一个问题,为什么我会出错: 无法将“System.String”类型的对象强制转换为System.Data.DataTable类型 如何修复此错误?只需更改以下代码即可 If String.IsNullOrEmpty(ViewState("InqProcurement_New.dtItem").Tostring())=false then If Not String.IsNullOrEmpty(Convert.Tostring(dtItem.Rows(0).Item(0
如何修复此错误?只需更改以下代码即可
If String.IsNullOrEmpty(ViewState("InqProcurement_New.dtItem").Tostring())=false then
If Not String.IsNullOrEmpty(Convert.Tostring(dtItem.Rows(0).Item(0))) Then
dtItem.Rows.Add()
Else
gvInqProqurement.Rows(0).Cells(9).Visible = True
gvInqProqurement.Rows(0).Cells(10).Visible = True
End If
在这种情况下,如果使用.ToString()方法,那么我们的程序应该抛出null引用异常。在Convert.ToString()中,我们的程序不会引发任何异常。默认情况下,它接受一个空白值,而不是null
这可能不是您出现错误的原因,但第一行中可能有语法错误 这一行:
If Not String.IsNullOrEmpty(dtItem.Rows(0).Item(0).ToString) Then
应如下所示:
If Not String.IsNullOrEmpty(dtItem.Rows(0).Item(0).ToString()) Then
检查行
dtItem=ViewState(“InqProcurement\u New.dtItem”)
中的ViewState(“InqProcurement\u New.dtItem”)的类型
它可能返回字符串值。使用Ctype
将从viewstate返回的值转换为DataTable。您甚至可以使用DirectCast
Dim dtItem As New DataTable
if ViewState("InqProcurement_New.dtItem") isnot nothing then
dtItem = CType(ViewState("InqProcurement_New.dtItem"),DataTable)
end if
您可能需要考虑当它为空时的情况…如果。。。如果
,则对应于最终的结束?问:错误发生在哪一行?什么是“ViewState()”?问:代码中的最后一个“如果结束”属于哪里?顶部是否缺少一些相关的代码?您从哪里得到错误?这肯定不在上面的代码中@paulsm4:我想我在以下行中得到了错误:ViewState(“InqProcurement_New.dtItem”)=dtItem gvinqproqrement.DataSource=dtItem gvinqproqrement.DataBind()…我是VB初学者,这是我第一次使用ViewState(),在下面的行dtItem.Rows(0).Item(0)中不应该使用圆括号.ToString
。它不应该看起来像是dtItem.Rows(0).Item(0).ToString()
我一直在尝试,但我刚刚遇到了相同的错误我更改了代码,但遇到了相同的错误:(我尝试了您的代码,现在我得到了错误“对象引用未设置为对象的实例”。您能告诉我为什么会出现此错误吗?您的viewstate很可能不包含“InqProcurement\u New.dtItem”。您可以在强制转换之前检查它是否为null…类似于if viewstate(“InqProcurement\u New.dtItem”)然后dtItem=CType(ViewState(“InqProcurement\u New.dtItem”),DataTable)结束If@martinportgas:我的代码有帮助吗?如果有,请将答案标记为已接受,并在可能的情况下进行投票。
Dim dtItem As New DataTable
if ViewState("InqProcurement_New.dtItem") isnot nothing then
dtItem = CType(ViewState("InqProcurement_New.dtItem"),DataTable)
end if