以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]用for each语句简化代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89191) |
||||
-- 作者:33chyh -- 发布时间:2016/8/17 7:28:00 -- [求助]用for each语句简化代码 老师您好!帮助中for each语句的例子已经看过多次,在解决下面问题时还不会运用。下面是自己编写一段代码,也能实现相应功能。但是代码太多。如何用for each语句简化用荧光笔标注的代码?请您给予指导。
具体想法:通过比较“卷1答”表和“客观题答案”表中对应项比较,完全一致,在成绩表中计得分1。
疑惑:如何用for each语句实现寻找对应列?
Dim fkgdr1 As DataRow = DataTables("客观题答案").find("客观题1 = \'" & e.DataRow("客观题1") & "\' And 试卷号 = \'" & DataTables("卷1答").name.Chars(1) & "\'")
Dim fkgdr2 As DataRow = DataTables("客观题答案").find("客观题2 = \'" & e.DataRow("客观题2") & "\' And 试卷号 = \'" & DataTables("卷1答").name.Chars(1) & "\'")
Dim fkgdr3 As DataRow = DataTables("客观题答案").find("客观题3 = \'" & e.DataRow("客观题3") & "\' And 试卷号 = \'" & DataTables("卷1答").name.Chars(1) & "\'") Dim ndr1 As DataRow = DataTables("成绩").Find("学号 = \'" & e.DataRow("学号") & "\'") Dim ndr2 As DataRow = DataTables("卷1问").Find("学号 = \'" & e.DataRow("学号") & "\'") If ndr1 Is Nothing OrElse ndr2 Is Nothing Then \'这是一个将相关表格进行同时增加行的条件代码 ndr1 = DataTables("成绩").AddNew ndr1("学号") = e.DataRow("学号") ndr2 = DataTables("卷1问").AddNew ndr2("学号") = e.DataRow("学号") End IfI f fkgdr1 Is Nothing Then kgt1 = 0 Else kgt1 = 1 End If If fkgdr2 Is Nothing Then kgt2 = 0 Else kgt2 = 1 End If If fkgdr3 Is Nothing Then kgt3 = 0 Else kgt3 = 1 End If ndr1("卷1") = kgt1 + kgt2 + kgt3
|
||||
-- 作者:y2287958 -- 发布时间:2016/8/17 8:20:00 -- Dim kgt As Integer For i As Integer = 1 To 3 Dim fkgdr As DataRow = DataTables("客观题答案").find("客观题" & i " = \'" & e.DataRow("客观题" & i) & "\' And 试卷号 = \'" & DataTables("卷1答").name.Chars(1) & "\'") If fkgdr Is Nothing Then kgt += 1 End If Next ndr1("卷1") = kgt
|
||||
-- 作者:33chyh -- 发布时间:2016/8/17 19:03:00 -- 老师您好!在您的代码中,我学到了如何设置一些动态表达式的方法。在阅读中有一处代码含义不清楚,请问“kgt += 1”的含义是什么?它和“kgt = kgt + 1”的含义一样吗? 经过试验两者效果一样。 [此贴子已经被作者于2016/8/17 19:18:31编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/17 20:24:00 -- a += 1 等同于 a = a + 1
a &= 1 等同于 a = a & 1 |
||||
-- 作者:33chyh -- 发布时间:2016/8/17 21:41:00 -- 谢谢大红袍老师 |