Foxtable(狐表)用户栏目专家坐堂 → 查询按钮生成的数据不完整


  共有3738人关注过本帖树形打印复制链接

主题:查询按钮生成的数据不完整

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
查询按钮生成的数据不完整  发帖心情 Post By:2020/6/29 16:28:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛(2020628).foxdb

密码:888888
如题:
Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim m As WinForm.TextBox = e.Form.Controls("第几轮")
        Dim di2 As String = m.Value
        Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'")
        For i As Integer = 0 To drs6.Count - 1 Step 2
            If i + 1 <= drs6.Count - 1
                Dim cx As DataRow = DataTables("查询").AddNew
                cx("红方_编号") = drs6(i)("编号")
                cx("红方_姓名") = drs6(i)("姓名")
                cx("红方_上轮止累计积分") = drs6(i)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs6(i)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs6(i).IsNull("积分")," Is Null"," ='" & drs6(i)("积分")  & "'")
                cx("黑方_编号") = drs6(i+1)("编号")
                cx("黑方_姓名") = drs6(i+1)("姓名")
                cx("黑方_上轮止累计积分") = drs6(i+1)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs6(i+1)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs6(i+1).IsNull("积分")," Is Null"," ='" & drs6(i+1)("积分")  & "'")
            End If
        Next

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/29 16:48:00 [只看该作者]

        For i As Integer = 0 To drs6.Count - 1 Step 2
                Dim cx As DataRow = DataTables("查询").AddNew
                cx("红方_编号") = drs6(i)("编号")
                cx("红方_姓名") = drs6(i)("姓名")
                cx("红方_上轮止累计积分") = drs6(i)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs6(i)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs6(i).IsNull("积分")," Is Null"," ='" & drs6(i)("积分")  & "'")
         If i + 1 <= drs6.Count - 1
                cx("黑方_编号") = drs6(i+1)("编号")
                cx("黑方_姓名") = drs6(i+1)("姓名")
                cx("黑方_上轮止累计积分") = drs6(i+1)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs6(i+1)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs6(i+1).IsNull("积分")," Is Null"," ='" & drs6(i+1)("积分")  & "'")
            End If
        Next

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/29 20:49:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛(2020629).foxdb

密码:888888
改成这样,报错!

图片点击可在新窗口打开查看此主题相关图片如下:20206.png
图片点击可在新窗口打开查看
        Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim m As WinForm.TextBox = e.Form.Controls("第几轮")
        Dim di2 As String = m.Value
        Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        DataTables("查询").DataRows.Clear        
        Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0","","桌号")
        For ci As Integer = 0 To drs6.Count - 1 Step 2
            Dim cx As DataRow = DataTables("查询").AddNew
            cx("桌号") = drs6(ci)("桌号")
            cx("红方_编号") = drs6(ci)("编号")
            cx("红方_姓名") = drs6(ci)("姓名")
            cx("红方_上轮止累计积分") = drs6(ci)("上轮止累计积分")
            cx("红方_曾交战对手累计积分") = drs6(ci)("曾交战对手累计积分")
            cx("当前局成绩_红方") = IIF(drs6(ci).IsNull("积分"),"0",drs6(ci)("积分"))
            If ci + 1 <= drs6.Count - 1
                cx("黑方_编号") = drs6(ci+1)("编号")
                cx("黑方_姓名") = drs6(ci+1)("姓名")
                cx("黑方_上轮止累计积分") = drs6(ci+1)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs6(ci+1)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs6(ci+1).IsNull("积分"),"0",drs6(ci+1)("积分"))
            End If
        Next
        Dim drs7 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
        For hi As Integer = 0 To drs7.Count - 1 Step 2
            Dim cx As DataRow = DataTables("查询").AddNew
            cx("桌号") = 0
            cx("红方_编号") = drs7(hi)("编号")
            cx("红方_姓名") = drs7(hi)("姓名")
            cx("红方_上轮止累计积分") = drs7(hi)("上轮止累计积分")
            cx("红方_曾交战对手累计积分") = drs7(hi)("曾交战对手累计积分")
            cx("当前局成绩_红方") = IIF(drs7(hi).IsNull("积分"),"0",drs7(hi)("积分"))
            If hi + 1 <= drs6.Count - 1
                cx("黑方_编号") = drs7(hi+1)("编号")
                cx("黑方_姓名") = drs7(hi+1)("姓名")
                cx("黑方_上轮止累计积分") = drs7(hi+1)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs7(hi+1)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs7(hi+1).IsNull("积分"),"0",drs7(hi+1)("积分"))
            End If
        Next

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/29 20:53:00 [只看该作者]

你给的代码没有了所有0桌的数据,查询出来的数据也与比赛积分表的不一致,因此我把代码改为这样,显示数据没错了,但提示窗口报错就不知哪的问题了。

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/29 20:58:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/29 21:14:00 [只看该作者]

我知道是什么问题引发的错了,综合组第一轮不报错,因为没缺赛人,都有对应排座,第2轮之后有缺赛独立排座后没对应数据就报错了,请教如何解决对应数据为空造成的错误问题呢?

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/29 21:56:00 [只看该作者]

判断查询结果是否有值,比如使用find,就是判断if dr isnot nothing,如果使用select,就判断drs.Count > 0

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/29 22:24:00 [只看该作者]

还是报错
           Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim di4 As String = fz.Value
        DataTables("比赛积分").SQLReplaceFor("比赛已结束",True,"[棋赛名称] = '" & di1 & "' And [分组] = '" & di4 & "' And [比赛已结束] = False")
        DataTables("比赛积分").SQLReplaceFor("_locked",True,"[棋赛名称] = '" & di1 & "' And [分组] = '" & di4 & "' And [比赛已结束] = True")
        DataTables("比赛积分").save
        DataTables("比赛积分").load
    Case  "解锁"
        Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim di4 As String = fz.Value
        DataTables("比赛积分").SQLReplaceFor("比赛已结束",False,"[棋赛名称] = '" & di1 & "' And [分组] = '" & di4 & "' And [比赛已结束] = True")
        DataTables("比赛积分").SQLReplaceFor("_locked",False,"[棋赛名称] = '" & di1 & "' And [分组] = '" & di4 & "' And [比赛已结束] = False")
        DataTables("比赛积分").save
        DataTables("比赛积分").load
    Case  "查询"
        Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim m As WinForm.TextBox = e.Form.Controls("第几轮")
        Dim di2 As String = m.Value
        Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        DataTables("查询").DataRows.Clear
        Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0","","桌号")
        Dim drs7 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0 And [红黑方] = '红方'","","桌号")
        Dim drs8 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0 And [红黑方] = '黑方'","","桌号")
        For ci As Integer = 0 To (drs6.Count)\2
            Dim cx As DataRow = DataTables("查询").AddNew
            If ci > drs7.count And ci <= drs8.count Then
                cx("红方_编号") = Nothing
                cx("红方_姓名") = Nothing
                cx("红方_上轮止累计积分") = 0
                cx("红方_曾交战对手累计积分") = 0
                cx("当前局成绩_红方") = 0
            Else
                cx("桌号") = drs7(ci)("桌号")
                cx("红方_编号") = drs7(ci)("编号")
                cx("红方_姓名") = drs7(ci)("姓名")
                cx("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
            End If
            If ci <= drs7.count And ci > drs8.count Then
                cx("黑方_编号") = Nothing
                cx("黑方_姓名") = Nothing
                cx("黑方_上轮止累计积分") = 0
                cx("黑方_曾交战对手累计积分") = 0
                cx("当前局成绩_黑方") = 0
            Else
                cx("黑方_编号") = drs8(ci)("编号")
                cx("黑方_姓名") = drs8(ci)("姓名")
                cx("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs8(ci+1).IsNull("积分"),"0",drs8(ci)("积分"))
            End If
        Next
        Dim drs9 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
        Dim drs10 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '红方'","","桌号")
        Dim drs11 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '黑方'","","桌号")
        For hi As Integer = 0 To (drs9.Count)\2
            Dim cx As DataRow = DataTables("查询").AddNew
            If hi > drs10.count And hi <= drs11.count Then
                cx("红方_编号") = Nothing
                cx("红方_姓名") = Nothing
                cx("红方_上轮止累计积分") = 0
                cx("红方_曾交战对手累计积分") = 0
                cx("当前局成绩_红方") = 0
            Else
                cx("桌号") = 0
                cx("红方_编号") = drs10(hi)("编号")
                cx("红方_姓名") = drs10(hi)("姓名")
                cx("红方_上轮止累计积分") = drs10(hi)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs10(hi)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs10(hi).IsNull("积分"),"0",drs10(hi)("积分"))
            End If
            If hi <= drs10.count And hi > drs11.count Then
                cx("黑方_编号") = Nothing
                cx("黑方_姓名") = Nothing
                cx("黑方_上轮止累计积分") = 0
                cx("黑方_曾交战对手累计积分") = 0
                cx("当前局成绩_黑方") = 0
            Else
                cx("黑方_编号") = drs11(hi+1)("编号")
                cx("黑方_姓名") = drs11(hi+1)("姓名")
                cx("黑方_上轮止累计积分") = drs11(hi+1)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs11(hi+1)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs11(hi+1).IsNull("积分"),"0",drs11(hi+1)("积分"))
            End If
        Next
[此贴子已经被作者于2020/6/29 23:01:20编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/29 22:42:00 [只看该作者]

没看懂这代码逻辑。自己调试一下看哪一句出错

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1863 积分:10262 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/29 23:04:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200629230016.png
图片点击可在新窗口打开查看
0桌的数据全没了,最后一行也没了黑方的当前积分!

 回到顶部
总数 33 1 2 3 4 下一页