Foxtable(狐表)用户栏目专家坐堂 → [求助]代码运行错误,帮忙看下~


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

主题:[求助]代码运行错误,帮忙看下~

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
[求助]代码运行错误,帮忙看下~  发帖心情 Post By:2015/11/13 15:32:00 [只看该作者]

代码如下:
Dim cnt As Integer = DataTables("题库").DataRows.Count
Dim str As New List(of Integer) '用于存储洗牌前的位置
For i As Integer = 0 To cnt -1 '准备初始的牌
    str.add(i)
Next
For i As Integer = 1 To str.count '洗牌测次数
    Dim rnum1 As Integer = Rand.Next(str.count -1)
    Dim rnum2 As Integer = Rand.Next(str.count -1)
    Dim temp As String = str(rnum1)
    str(rnum1) = str(rnum2)
    str(rnum2) = temp
Next
Tables("题库").StopRedraw()
DataTables("题库").ReplaceFor("抽取",False)
For i As Integer = 0 To 10- 1 '5为要抽取的行数
    DataTables("题库").DataRows(str(i))("抽取") = True
Next
Tables("题库").Filter = "[抽取] = True"
Tables("题库").ResumeRedraw()

DataTables("题库").dataRows.delete("序号") '清除序号列原有数据
DataTables("题库").DataCols("题目").RaiseDataColChanged()'重置序号列
Tables("题库").save

forms("初始界面").close
forms("答题面板").open



经过测试,应该是下面这段代码有问题,附错误提示截图。
DataTables("题库").dataRows.delete("序号") '清除序号列原有数据
DataTables("题库").DataCols("题目").RaiseDataColChanged()'重置序号列


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



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/13 15:34:00 [只看该作者]

DataTables("题库").ReplaceFor("序号", "") '清除序号列原有数据

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2015/11/13 15:42:00 [只看该作者]

谢谢~又发现个问题,我在表的datacolchanged里面写的自动编号的代码运行后,是对表内所有数据的重新编码,我本意是对筛选后的10个数据重新进行序号的编码。求思路。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/13 15:44:00 [只看该作者]

Tables("题库").Filter = "[抽取] = True"

For Each r As Row In Tables("题库").Rows

    r("序号") = r.Index + 1

Next


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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2015/11/13 16:50:00 [只看该作者]

首先感谢大红袍对上一问题的耐心解答~新问题来了~问题出在给当前行选择列赋值上。附图:
Dim rdo1 As WinForm.RadioButton
Dim rdo2 As WinForm.RadioButton
Dim rdo3 As WinForm.RadioButton
Dim rdo4 As WinForm.RadioButton
rdo1 = Forms("答题面板").Controls("RadioButton1")
rdo2 = Forms("答题面板").Controls("RadioButton2")
rdo3 = Forms("答题面板").Controls("RadioButton3")
rdo4 = Forms("答题面板").Controls("RadioButton4")

If rdo1.Checked = True Then
    DataTables("题库").DataRows("选择")="A"
Else If rdo2.Checked = True Then
    DataTables("题库").DataRows("选择")="B"
Else If rdo3.Checked = True Then
    DataTables("题库").DataRows("选择")="C"
Else If rdo4.Checked = True Then
    DataTables("题库").DataRows("选择")="D"
Else
    MessageBox.Show("请选择你的答案 !", "提示", MessageBoxButtons.Ok, MessageBoxIcon.Warning)
End If

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/13 17:14:00 [只看该作者]

Dim cr As Row = Tables("题库").Current
 
If rdo1.Checked = True Then
    cr("选择")="A"
Else If rdo2.Checked = True Then
    cr("选择")="B"
Else If rdo3.Checked = True Then
    cr("选择")="C"
Else If rdo4.Checked = True Then
    cr("选择")="D"
Else
    MessageBox.Show("请选择你的答案 !", "提示", MessageBoxButtons.Ok, MessageBoxIcon.Warning)
End If

 回到顶部