以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  判断语句没有起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158201)

--  作者:tld
--  发布时间:2020/11/11 13:16:00
--  判断语句没有起作用

老师好。窗体的表是sqltable,从Excel中导入数据,因需要进行复杂判断,用逐个单元格导入数据到狐表中。下面的代码,If d Is Nothing Then 判断语句没有起到作用:
For i As Integer = start  To  endrow
        Dim zj As String = sheet(i,1).value  \'-------------------------------利用主机交易流水号,判断是否已经导入过
        If zj <> "" Then
            zj = zj.trim()   \'--------------------------------------------------删除空格
            Dim d As DataRow = datatables(e.form.name & "_table1").SQLFind("主机交易流水号 = \'" & zj & "\'")
            If d Is Nothing Then  \'    --------------------------------------  没有导入过这个主机流水号
dim current as datarow = datatables(e.form.name & "_table1").addnew
                Dim jyls As String = sheet(i,1).value
                jyls = jyls.trim()
                current("主机交易流水号") = jyls
。。。。。。。。
current.save
    end if
end if
next
上面的代码,按理说不能重复导入同一个Excel表,因导入后,If d Is Nothing Then 会判断是否已经导入。但实际是可以重复导入

哪里有错误?请老师指点   谢谢!!
[此贴子已经被作者于2020/11/11 13:19:51编辑过]

--  作者:有点蓝
--  发布时间:2020/11/11 13:36:00
--  
代码没有问题。如果有也是数据问题,比如有空格等等
--  作者:tld
--  发布时间:2020/11/11 14:18:00
--  
老师, 我把SQLFind 改为 Find 就 不会重复导入。代码中已经 current.save 。不明白怎么回事,请蓝版主指点 。谢谢!
--  作者:有点蓝
--  发布时间:2020/11/11 14:52:00
--  
如果是sqlserver数据库跟踪一下后台执行了什么sql,再看看数据库里有没有这些数据
--  作者:tld
--  发布时间:2020/11/11 15:12:00
--  
看了数据库,里面有这些重复的数据  。  加载后,find可以成功搜索;未加载的数据,用SQLfind没有成功检索到?


--  作者:有点蓝
--  发布时间:2020/11/11 15:15:00
--  
跟踪一下后台执行了什么sql:https://www.baidu.com/s?wd=sql%20profiler
--  作者:tld
--  发布时间:2020/11/11 16:45:00
--  

老师,还有个现象:下面的三行语句,第一行发生错误,第二、三行正常

dim sum1 as single = datatables(e.form.name & "_table1").sqlcompute("sum(贷方发生额)")
dim sum2 as single = datatables(e.form.name & "_table1").compute("sum(贷方发生额)")
dim sum3 as single = tables(e.form.name & "_table1").compute("sum(贷方发生额)")

第一行的错误信息是:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
关键字 \'select\' 附近有语法错误。


--  作者:有点蓝
--  发布时间:2020/11/11 16:51:00
--  
table1是一个查询表吧。并且是多表关联的?生成查询表的sql发上来看看