Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 无法强制转换类型为';System.Data.DataView';输入';System.Data.IDataReader';_Asp.net_Vb.net_Dataview_Idatareader - Fatal编程技术网

Asp.net 无法强制转换类型为';System.Data.DataView';输入';System.Data.IDataReader';

Asp.net 无法强制转换类型为';System.Data.DataView';输入';System.Data.IDataReader';,asp.net,vb.net,dataview,idatareader,Asp.net,Vb.net,Dataview,Idatareader,我有一个从XMLWebService获取数据的函数(在vb.net上): Private Function GetDataSchedule() As DataTable Dim xTable As Data.DataTable xTable = xMaster.GetSchedule() 'Bind to DataTable Dim DT As New System.Data.DataTable DT.Load(xTable.DefaultView) '

我有一个从XMLWebService获取数据的函数(在vb.net上):

Private Function GetDataSchedule() As DataTable
    Dim xTable As Data.DataTable
    xTable = xMaster.GetSchedule()

    'Bind to DataTable
    Dim DT As New System.Data.DataTable
    DT.Load(xTable.DefaultView) '--> When I set a breakpoint, the error start from here

    Return DT
End Function
然后是调用
GetDataSchedule()
函数的函数:

Public Sub ShowDataSchedule()
    Dim DSSchedule As New System.Data.DataSet
    DSSchedule.Tables.Add(GetDataSchedule) 

End Sub
但是,当我执行代码时,会得到错误消息:
无法将“System.Data.DataView”类型的对象强制转换为“System.Data.IDataReader”类型。

当我刚刚执行
GetDataSchedule()
函数时,它返回值,但当我单独调用该函数时,它出现了错误。我错过什么了吗?我需要你的帮助。谢谢…

试试这个

DSSchedule.Tables.Add(GetDataSchedule().Copy())
尽管如此,由于您可能会从GetDataSchedule()返回一个空引用,因此最好稍微重新考虑一下您的代码:

Dim schedule as Data.DataTable = GetDataSechedule()
If Not IsNothing(schedule) Then
    DSSchedule.Tables.Add(schedule.Copy())
End If

否则,如果您尝试对空引用执行
.Copy()
,代码将发出boom

加载函数只接受DataReaders作为参数(例如:SqlDataReader),但您已经有了datatable。有DT=xTable就足够了。

您好,谢谢。。它不起作用。我仍然得到了消息,我想问题是没有得到一个空引用,但我不太确定..如果我不清楚的话,很抱歉。我认为解决您问题的方法是上面的Copy()方法。空引用检查是我额外添加的。