大红袍老师:正像您说的那样,这个项目比起财务管理等软件开发有相当复杂的逻辑关系,我与其他人交流时,也感到逻辑有些不清楚。这个项目是一个教学检测软件,通过各种表之间关系对老师教学和学生学习状况进行评价。它不仅涉及到软件编程的知识还涉及到教学流程和测评方法的知识。涉及的表很多,所以显得逻辑关系不清晰。由于人到中年,没有利用一些软件进行编程的学习经历,一切是从零开始,同时项目的逻辑关系复杂,可能造成叙述问题不清晰,所以是您想帮助我也不能切中问题的要害,给您带来很大麻烦。对您的及时耐心的帮助,我深表感谢!!!
现在有这样一个问题请您看看帮助我怎样解决。请先阅读蓝色字体,这是说明几个表间关系,以及想要达到的目的。红色字体是说明存在问题。下面我写的一段代码,无法实现目的。根据您前面的指导,通过messagebox找到是这段代码编写问题,结合软件输出结果分析,应该是这段代码的find条件错误。请您看看应该怎样书写这样的代码呢?
Dim kgt1,kgt2,zgt1,zgt2 As Integer
Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & e.DataRow("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & e.DataRow("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & e.DataRow("学号") & "'")
If ndr Is Nothing Then
ndr = DataTables("成绩表").AddNew
ndr("学号") = e.DataRow("学号")
End If
If fdr1 Is Nothing Then
kgt1 = 0
Else
kgt1= 1
End If
If fdr2 Is Nothing Then
kgt2 = 0
Else
kgt2= 1
End If
If e.DataRow("主观题1") = "t" Then
zgt1 = 1
Else
zgt1=0
End If
If e.DataRow("主观题2") = "t" Then
zgt2 = 1
Else
zgt2=0
End If '给相关列赋值
ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
'从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & e.DataRow("学号") & "'")
Dim kmdr1 As DataRow = DataTables("客观题描述").find("题号 = '" & e.DataRow("客观题1") & "'And 试卷号= '" & DataTables("答题数据1").Name & "'")
Dim kgt1wz As String
Dim kfdr1 As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'" )
Dim x1a,x1b,x1c,x1d As String
If wtzj Is Nothing Then
wtzj = DataTables("问题总结").AddNew
wtzj("学号") = e.DataRow("学号")
End If
If kfdr1 IsNot Nothing Then
Dim kegtdr1 As String = e.DataRow("客观题1")
Dim kegtdadr1 As String = kfdr1("客观题1")
If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
MessageBox.show("1")
x1a = kmdr1("选项A")
End If
If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
x1b = kmdr1("选项B")
End If
If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
x1c = kmdr1("选项C")
End If
If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
x1d = kmdr1("选项D")
End If
End If
kgt1wz = x1a & ";" & x1b & ";" & x1c & ";" & x1d
Dim kgt2wz As String
Dim kmdr2 As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'And 题号 = '" & e.DataRow("客观题2") & "'")
Dim kfdr2 As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'" )
Dim kegtdr2 As String = e.DataRow("客观题2")
Dim kegtdadr2 As String = kfdr2("客观题2")
Dim x2a,x2b,x2c,x2d As String
If kfdr2 IsNot Nothing Then
If kegtdr2.contains("a") = True And kegtdadr2.contains("a") = True
Else If kegtdr2.contains("a") = True Or kegtdadr2.contains("a") = True Then
x2a = kmdr2("选项A")
End If
If kegtdr2.contains("b") = True And kegtdadr2.contains("b") = True
Else If kegtdr2.contains("b") = True Or kegtdadr2.contains("b") = True Then
x2b = kmdr2("选项B")
End If
If kegtdr2.contains("c") = True And kegtdadr2.contains("c") = True
Else If kegtdr2.contains("c") = True Or kegtdadr2.contains("c") = True Then
x2c = kmdr2("选项C")
End If
If kegtdr2.contains("d") = True And kegtdadr2.contains("d") = True
Else If kegtdr2.contains("d") = True Or kegtdadr2.contains("d") = True Then
x2d = kmdr2("选项D")
End If
kgt2wz = x2a & ";" & x2b & ";" & x2c & ";" & x2d
End If
wtzj("问题总结1") =kgt1wz & ";" & kgt2wz
![dvubb 图片点击可在新窗口打开查看](skins/default/filetype/jpg.gif)
此主题相关图片如下:寻找结果.jpg