以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]为何表间调用总出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17375)

--  作者:vincent8899
--  发布时间:2012/3/11 17:23:00
--  [求助]为何表间调用总出错

请各位帮帮忙,还没分析,调用已经失败了,崩溃。

录音表:有四列数据(日期,时间,号码,录音大小)

成功明细表:有九列数据(日期,时间,号码,营销人员,业务名称,号码属地,主叫号,录入员,录音大小)

"成功明细表"中“时间”与“录音大小”列需调用"录音表",条件是:两表中的“日期”与“号码”相同时

在“成功明细表”的表属性的DataColChanged事件中以下代码

If e.DataCol.Name = "号码" Then
        Dim cgdr As DataRow = e.DataRow
        Dim lydr As DataRow
        If cgdr.IsNull("号码")  Then
           cgdr("时间") = Nothing
        Else
            Dim filter As String
            filter = "日期 = \'" & cgdr("日期") & "\' And 号码 = \'" & cgdr("号码") & "\'"
            lydr = DataTables("录音").Find(filter)
            If lydr Is Nothing Then
                cgdr("时间") = lydr("时间")
                cgdr("录音大小") = lydr("录音大小")
            End If
        End If
End If

在“成功明细”表中重置列“号码”,弹出:

错误代码位置:表,成功明细,DataColChanged

System.NullReferenceException:末将对象引用设置到对象的实例。

在UserCode.DataColChanged(DataColEventArgs e)

 

 

 


--  作者:ahbzczy
--  发布时间:2012/3/11 17:29:00
--  

filter = "日期 = #" & cgdr("日期") & \'\'# And 号码 = \'" & cgdr("号码") & "\'"
            lydr = DataTables("录音").Find(filter)
            If lydr IsNot Nothing Then
                cgdr("时间") = lydr("时间")
                cgdr("录音大小") = lydr("录音大小")
            End If
        End If
End If

 

这样试试


--  作者:vincent8899
--  发布时间:2012/3/11 17:37:00
--  [求助]

试了,还是弹出相同的错误窗口。

再帮忙找找原因,谢谢!


--  作者:vincent8899
--  发布时间:2012/3/11 18:42:00
--  

再次学习了帮助,没发现出错在哪,只能重新登录,再写一次,解决了。谢谢各位!!!

If e.DataCol.Name = "号码"  Then
    If e.NewValue Is Nothing Then
        e.DataRow("时间") = Nothing
    Else
        Dim dr As DataRow
        Dim filter As String
        filter = "日期 = #" & e.DataRow("日期") & "# And 号码 = \'" & e.DataRow("号码") & "\'"
        dr = DataTables("录音").Find(filter)
        If dr IsNot Nothing Then
            e.DataRow("时间") = dr("时间")
            e.DataRow("录音大小") = dr("录音大小")
        End If
     End If
End If


--  作者:新福星
--  发布时间:2012/3/11 19:15:00
--  
If lydr Is Nothing Then
                cgdr("时间") = lydr("时间")
                cgdr("录音大小") = lydr("录音大小")
            End If
lydr已经是Null怎么你还调用呢?
--  作者:blackzhu
--  发布时间:2012/3/12 8:05:00
--  
代码对的.