Foxtable(狐表)用户栏目专家坐堂 → [求助]使用临时表报错


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

主题:[求助]使用临时表报错

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


加好友 发短信
等级:童狐 帖子:253 积分:1816 威望:0 精华:0 注册:2018/3/5 14:40:00
[求助]使用临时表报错  发帖心情 Post By:2020/7/7 11:55:00 [只看该作者]

调用的目标发生了异常。
   在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
未将对象引用设置到对象的实例。
   在 UserCode.A3xyNgbmSlSoidvSg(Object[] Args)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:使用临时表.txt


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


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

调试看那一句代码出错

Dim dr As DataRow = TmTable.Find("OpenID = '" & OA & "'")
if dr isnot nothing then xxxx

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


加好友 发短信
等级:童狐 帖子:253 积分:1816 威望:0 精华:0 注册:2018/3/5 14:40:00
  发帖心情 Post By:2020/7/7 14:00:00 [只看该作者]

            cmd.Com mandText = "Se lect * fr om XL_T习题明细清单 W here 选择归属= '" & KC & "'"        查询出来是多行数据
            Dim XT = c md.ExecuteValues
            If HDValues.Count = 0 Then
                dr = TmTable.AddNew()          这里只能新增一行      
                dr("OpenID") = OA
                dr("课程ID") = KC
                dr("习题ID") = XT("习题ID")

这个要怎么处理,才能查询多少,就新增多少

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


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

多行使用ExecuteReader,然后遍历返回的表格的所有行

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


加好友 发短信
等级:童狐 帖子:253 积分:1816 威望:0 精华:0 注册:2018/3/5 14:40:00
  发帖心情 Post By:2020/7/7 14:18:00 [只看该作者]

需要老师,写个案例

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


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

示例三

同样利用ExecuteReader,可以直接从后台提取数据合并到某个表中:

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源名称"
Dim 
dt As DataTable
Dim 
Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
cmd.CommandText = 
"SELECT * From {表A} Where 条件语句"
dt = cmd.ExecuteReader
()
For Each 
dr1 As DataRow In dt.DataRows
    Dim 
dr2 As DataRow = DataTables("表B").AddNew()
    For 
i As Integer = 0 To Cols1.Length -1
        
dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next


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


加好友 发短信
等级:童狐 帖子:253 积分:1816 威望:0 精华:0 注册:2018/3/5 14:40:00
  发帖心情 Post By:2020/7/7 14:58:00 [只看该作者]

Dim OA As String = e.Cookies("openid") '获取openid
Dim KC As String = e.GetValues("kcid") '获取课程ID

Dim dt As D ataTable
Dim Cols1() As String = {OA,KC,"习题ID","习题类型","习题题目","正确答案","习题解析",1,Date.Now,Date.Now}
Dim Cols2() As String = {"OpenID","课程ID","习题ID","习题类型","习题题目","正确答案","习题解析","练习次数","生成时间","ActiveTime"}
c md.CommandText = "Se lect * fro m XL_T习题明细清单 Wh ere 选择归属= '" & KC & "'"
dt = cm d.ExecuteReader()
For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("TmInfos").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next


列“oWhWn1Sv3O4m43nBJRrAUpmGiF0A”不属于表 。
   在 System.Data.DataRow.GetDataColumn(String columnName)
   在 System.Data.DataRow.get_Item(String columnName, DataRowVersion version)
   在 Foxtable.DataRow.get_Item(String ColumnName)
   在 UserCode.A3xyNgbmSlSoidvSg(Object[] Args)


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


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

Cols1和Cols2数值里必须是列名。赋值代码可以用回原来的用法,不一定要抄帮助的

 dr2("OpenID") = OA
 dr2("课程ID") = KC

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


加好友 发短信
等级:童狐 帖子:253 积分:1816 威望:0 精华:0 注册:2018/3/5 14:40:00
  发帖心情 Post By:2020/7/7 18:21:00 [只看该作者]

        cmd.CommandText = "Sele ct * fr om XL_T回答明细清单 Whe re OpenID = '" & OA & "' AND 课程ID= '" & KC & "'"
        Dim HDValues = c md.ExecuteValues
        If HDValues.Count = 0 Then
            Dim dt As DataTable
            Dim Cols1() As String = {"习题ID","习题类型","习题题目","正确答案","习题解析"}
            Dim Cols2() As String = {"习题ID","习题类型","习题题目","正确答案","习题解析"}
            cm d.CommandText = "Se lect * fr om XL_T习题明细清单 Wh ere 选择归属= '" & KC & "'"
            dt = c md.ExecuteReader()
            For Each dr1 As DataRow In dt.DataRows
                Dim dr2 As DataRow = DataTables("TmInfos").AddNew()
                For i As Integer = 0 To Cols1.Length -1
                    dr2("OpenID") = OA
                    dr2("课程ID") = KC
                    dr2("练习次数") = 1
                    dr2("生成时间") = Date.Now
                    dr2("ActiveTime") = Date.Now
                    dr2(Cols2(i)) = dr1(Cols1(i))
                Next
            Next

未将对象引用设置到对象的实例。
   在 UserCode.A3xyNgbmSlSoidvSg(Object[] Args)

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


加好友 发短信
等级:幼狐 帖子:74 积分:476 威望:0 精华:0 注册:2020/1/16 11:58:00
  发帖心情 Post By:2020/7/7 18:26:00 [只看该作者]

cmd.CommandText = "Sele ct * fr om XL_T回答明细清单 Whe re OpenID = '" & OA & "' AND 课程ID= '" & KC & "'"
        Dim HDValues As DataTable= c md.ExecuteReader()

    

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