以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这代码哪儿有问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173201)

--  作者:cd_tdh
--  发布时间:2021/11/18 15:23:00
--  这代码哪儿有问题

老师,这代码哪儿有问题,执行到3就报错,3出来了,4不出来,同一个事件,其他一样逻辑的代码,就不报错

\'勾选到业绩管理
If e.DataCol.Name  = "审批状态"
    If e.DataRow("审批状态") = "已审批完成" Then
        Dim dt As DataTable
        msgbox(1)
        Dim cmd As New SQLCommand
        cmd.C
        msgbox(2)
        cmd.CommandText = "S  ELECT * From {业绩管理}"
        msgbox(3)
        dt = cmd.ExecuteReader(True)
        msgbox(4)
        Dim dr As DataRow = dt.Find("项目编码 = \'" & e.DataRow("项目编码") & "\'")
        msgbox(5)
        If dr Is Nothing Then  \'如果没有找到的话
            Dim nma() As String = { "项目编码","合同编码","所属机构","项目类别","项目名称","合同金额","合同工期","开工日期","竣工日期","项目经理","项目总工" }
            Dim nmb() As String = { "项目编码","合同编码","所属机构","项目类别","项目名称","合同金额","合同工期","开工日期","竣工日期","项目经理","项目总工" }
            Dim dr1 As DataRow = dt.AddNew
            For i As Integer = 0 To nma.Length - 1
                dr1(nmb(i)) = e.DataRow(nma(i))
            Next
            dr1.save
        Else
            dr("合同编码") = e.DataRow("合同编码")
            dr("合同金额") = e.DataRow("合同金额")
            dr("合同工期") = e.DataRow("合同工期")
            dr("开工日期") = e.DataRow("开工日期")
            dr("竣工日期") = e.DataRow("竣工日期")
            dr("项目经理") = e.DataRow("项目经理")
            dr("项目总工") = e.DataRow("项目总工")
            dr.save
        End If
    End If
End If

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211118152144.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211118152149.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211118152205.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2021/11/18 15:24:12编辑过]

--  作者:浙江仔
--  发布时间:2021/11/18 15:25:00
--  
cmd.ConnectionName = "数据源名称"
--  作者:cd_tdh
--  发布时间:2021/11/18 15:27:00
--  
这个是有的,只是发帖出来,自动删除了
--  作者:有点蓝
--  发布时间:2021/11/18 15:59:00
--  
BeforeConnectOuterDataSource事件是不是有代码改为连接到其它数据库了?
--  作者:cd_tdh
--  发布时间:2021/11/18 16:03:00
--  

没有哦,只有一个数据库,换这样写不报错,不过之前报错的一直没找到原因,折腾一下午!

        cmd.CommandText = "S elect [_Identify],项目编码,合同编码,所属机构,项目类别,项目名称,合同金额,合同工期,开工日期,竣工日期,项目经理,项目总工 From {业绩管理}" \'注意要包括主键列

 

这样的代码在同一个事件里面,用了多遍更新到不同的表,只是引用的列不一样,就这一段报错。

[此贴子已经被作者于2021/11/18 16:07:01编辑过]

--  作者:有点蓝
--  发布时间:2021/11/18 16:08:00
--  
{业绩管理}加载进来和普通表格一样增删改有没有问题?
--  作者:cd_tdh
--  发布时间:2021/11/18 16:19:00
--  
没有问题,加载进来就不报错了
--  作者:有点蓝
--  发布时间:2021/11/18 16:25:00
--  
还有这种事?如果再从外部表管理中删除呢,还报错么?

web数据源?使用的什么日期版本的foxtable?
[此贴子已经被作者于2021/11/18 16:25:34编辑过]

--  作者:cd_tdh
--  发布时间:2021/11/18 16:52:00
--  
数据源是:SQl server ,foxtable是2021.5.29,这个项目用了动态编译,一直没敢升级!
--  作者:有点蓝
--  发布时间:2021/11/18 17:14:00
--  
如果是web数据源,应该和ExecuteReader(True)有关,如果不是web数据源,应该和这个无关了。

方便做个例子测试一下