以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]未将对象引用设置到对象的实例  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101024)

--  作者:mxko
--  发布时间:2017/5/23 20:52:00
--  [求助]未将对象引用设置到对象的实例
调用的目标发生了异常。
.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2017.5.22.1
错误所在事件:自定义函数_pPageFilterLoad
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
-----------------------------------------------
红色部分为引发错误的代码:
Dim hc As New HttpClient("http://127.0.0.1/query.htm")
hc
.FormData.Add("username","EP01")
hc
.FormData.Add("password","888")
hc
.FormData.Add("filter","产品=\'PD01\'")
Dim
 dt As DataTable = hc.GetDataTable()
If dt IsNot Nothing Then
    Output.Show(
dt.DataCols.Count) 
Else

    
MessageBox.Show("接收DataTable失败,原因未知!""错误" ,MessageBoxButtons.OK ,MessageBoxIcon.Warning)
End
 If

--  作者:wyz20130512
--  发布时间:2017/5/23 21:08:00
--  
这说明你引用的对象是一个空值,没有指定具体的对象。
--  作者:mxko
--  发布时间:2017/5/23 21:15:00
--  
老师,那我怎么 获取 DataTable 的列名呢?
[此贴子已经被作者于2017/5/23 21:15:21编辑过]

--  作者:wyz20130512
--  发布时间:2017/5/23 21:20:00
--  
遍历DataTables("XXX").DataCols集合
--  作者:mxko
--  发布时间:2017/5/23 21:26:00
--  
Dim hc As New HttpClient("http://127.0.0.1/query.htm")
hc
.FormData.Add("username","EP01")
hc
.FormData.Add("password","888")
hc
.FormData.Add("filter","产品=\'PD01\'")
Dim
 dt As DataTable = hc.GetDataTable()
For Each dc As DataCol In dt.DataCols  
    Output.Show("【" & dc.Name & "】")
Next
改成这样,也是一样报错的,经测试 dt.DataCols  
有这句的都错
[此贴子已经被作者于2017/5/23 21:27:05编辑过]

--  作者:有点蓝
--  发布时间:2017/5/23 21:29:00
--  
query.htm是怎么样返回这个Datatable的?
--  作者:mxko
--  发布时间:2017/5/23 21:37:00
--  
用这个方法
e.WriteDataTable(scd"数据源名称")
-----
dt.DataRows.Count 是正确的
-----
就是按
http://www.foxtable.com/mobilehelp/scr/0162.htm
这个例子写的
[此贴子已经被作者于2017/5/23 21:40:22编辑过]

--  作者:有点蓝
--  发布时间:2017/5/23 21:42:00
--  
Dim hc As New HttpClient("http://127.0.0.1/query.htm")
hc.FormData.Add("username","EP01")
hc.FormData.Add("password","888")
hc.FormData.Add("filter","产品=\'PD01\'")
Dim dt As DataTable = hc.GetDataTable()
If dt IsNot Nothing Then
    For Each dc As DataCol In dt.DataCols
        Output.Show("【" & dc.Name & "】")
    Next
End If

--  作者:mxko
--  发布时间:2017/5/23 21:45:00
--  
没有作用 一样有错误。
Dim hc As New HttpClient("http://127.0.0.1/query.htm")
hc
.FormData.Add("username","EP01")
hc
.FormData.Add("password","888")
hc
.FormData.Add("filter","产品=\'PD01\'")
Dim
 dt As DataTable = hc.GetDataTable()
If dt IsNot Nothing Then
For Each dc As DataCol In dt.DataCols  
    Output.Show("【" & dc.Name & "】")
Next
End If


[此贴子已经被作者于2017/5/23 21:47:16编辑过]

--  作者:有点蓝
--  发布时间:2017/5/23 22:07:00
--  
bug,暂时可以这样用

Dim hc As New HttpClient("http://127.0.0.1/query.htm")
hc.FormData.Add("username","EP01")
hc.FormData.Add("password","888")
hc.FormData.Add("filter","产品=\'PD01\'")
Dim dt As DataTable = hc.GetDataTable()
If dt IsNot Nothing Then
    For Each dc As system.data.DataColumn In dt.basetable.Columns
        Output.Show("【" & dc.ColumnName  & "】")
    Next
End If