Foxtable(狐表)用户栏目专家坐堂 → 未将对象引用设置到对象的实例。


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

主题:未将对象引用设置到对象的实例。

帅哥哟,离线,有人找我吗?
刘林
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
未将对象引用设置到对象的实例。  发帖心情 Post By:2018/4/14 8:33:00 [只看该作者]

Dim c7 As String = e.Form.Controls("combobox7").text
Dim dt As Table = Tables("学生信息")
If dt.Rows.count>0
    Dim p As WinForm.ProgressBar
    p = e.Form.Controls("ProgressBar1")
    p.Maximum = dt.Rows.Count '设置最大值
    p.Minimum = 0 '设置最小值
    p.Value = 0 '设置当前值
    If  c7  >""
        Dim year As String = trim(c7.Substring(0,2))
        Dim v As Integer = cint(year)
        Dim ji As String = c7.Substring(2,1)
        Dim j As Integer
        If ji = "春"
            j = 0
        End If
        If ji = "秋"
            j = 1
        End If
        Dim Cols1() As String = {"学校名称","学生姓名","身份证件号","学籍号","班级"}
        Dim Cols2() As String = {"学校名称","姓名","身份证号","学籍号","级"}
        Dim su As Integer = 0
        Dim dr2 As DataRow
        For Each dr1 As Row In dt.Rows
            Dim Filter As String = ""
            If dr1.IsNull("身份证件号") Then
                filter = "身份证号 is Null and 姓名 = '" & dr1("学生姓名") & "' and 级='" & dr1("班级") & "' and 考试名称='" & c7 & "' and 学校名称 = '"& _usergroup & "'"
            Else
                filter = "身份证号 = '" & dr1("身份证件号") & "' and 姓名 =  '" & dr1("学生姓名") & "' and 级 = '" & dr1("班级") & "'and 考试名称='" & c7 & "' and 学校名称 = '"& _usergroup & "'"
            End If
            dr2 = DataTables("生地报名库").Find(filter)
            If dr2 Is Nothing Then
                If dr1("年级")= "初中2016级"
                    dr2 = DataTables("生地报名库").AddNew()
                End If
                If dr1("年级")= "初中2015级"
                    Dim ks As String = "17春中考"
                    Dim yjks As DataRow = DataTables("成绩").sqlFind("身份证件号 = '" & dr1("身份证件号") & "' And 考试名称 ='" & ks & "'")
                    If yjks IsNot Nothing
                         If yjks("总分")> yjks("生物_")+yjks("地理_")
                        dr2 = DataTables("生地报名库").AddNew()
                         End If
                    End If
                End If  (如果是2015级,在成绩中找这个人如果有且总分超过生物+地理则增加补考)
            End If
            For i As Integer = 0 To Cols1.Length -1
                dr2(Cols2(i)) = dr1(Cols1(i))
            Next
            dr2("考试名称") = c7
            dr2("年级")= trim(str(v - val(trim(year)) + j+9))
            su = su +1
            p.Value = su
        Next
    End If
End If

NET Framework 版本:2.0.50727.8000
Foxtable 版本:2018.3.9.1
错误所在事件:窗口,中考报名(gai),Button22,Click
详细错误信息:
未将对象引用设置到对象的实例。

测试到If dr1("年级")= "初中2015级"出错,觉得应该是这样,请问老师,哪里有问题,没看出来呢
[此贴子已经被作者于2018/4/14 8:37:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 9:23:00 [只看该作者]

这一句代码没有问题,如果有上面一句就出错了:If dr1("年级")= "初中2016级"

是不是列名有错?或者是后面的说明文字没有注释掉

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/4/14 12:10:00 [只看该作者]

列名没有错,当为2016级时是可以增加的,但当到2015级因要判定就出错了

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


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

For Each dr1 As Row In dt.Rows
    Dim Filter As String = ""
    If dr1.IsNull("身份证件号") Then
        filter = "身份证号 is Null and 姓名 = '" & dr1("学生姓名") & "' and 级='" & dr1("班级") & "' and 考试名称='" & c7 & "' and 学校名称 = '"& _usergroup & "'"
    Else
        filter = "身份证号 = '" & dr1("身份证件号") & "' and 姓名 =  '" & dr1("学生姓名") & "' and 级 = '" & dr1("班级") & "'and 考试名称='" & c7 & "' and 学校名称 = '"& _usergroup & "'"
    End If
    dr2 = DataTables("生地报名库").Find(filter)
    If dr2 Is Nothing Then
        If dr1("年级")= "初中2016级"
            dr2 = DataTables("生地报名库").AddNew()
        End If
        If dr1("年级")= "初中2015级"
            Dim ks As String = "17春中考"
            Dim yjks As DataRow = DataTables("成绩").sqlFind("身份证件号 = '" & dr1("身份证件号") & "' And 考试名称 ='" & ks & "'")
            If yjks IsNot Nothing
                If yjks("总分")> yjks("生物_")+yjks("地理_")
                    dr2 = DataTables("生地报名库").AddNew()
                End If
            End If
        End If  (如果是2015级,在成绩中找这个人如果有且总分超过生物+地理则增加补考)
    End If
    If dr2 IsNot Nothing Then
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
        dr2("考试名称") = c7
        dr2("年级")= trim(str(v - val(trim(year)) + j+9))
        su = su +1
        p.Value = su
    End If
Next

 回到顶部