我正在创建多选题系统。 到目前为止,我创建了这4个表格和1个视图。将数组传递到表
该表是tblQuestion,tblAnswer,tblQuiz,tblResult和tblResultDetail。 tblQuestion是存储问题,tblAnswer存储问题的答案,tblResult是为每个回答测验的用户记录,并将用户答案存储在TblResultDetails中。
根据下面的代码,从视图中读取数据。 (questiondr.Read)。我使用1,2,3,4,因为它是视图的列名称。我做了这个随机化的答案。
Dim MyArray(3) As String
Dim commd As New SqlCommand("Select * From view_Question Where [email protected]", conn)
commd.Parameters.AddWithValue("@IdQuestion", count)
Dim questiondr As SqlDataReader
questiondr = commd.ExecuteReader
If questiondr.Read() Then
Me.lblTitle.Text = questiondr("txtQuestion")
Me.ansrb1.Text = questiondr("1")
MyArray(0) = questiondr("1")
Me.ansrb2.Text = questiondr("2")
MyArray(1) = questiondr("2")
Me.ansrb3.Text = questiondr("3")
MyArray(2) = questiondr("3")
Me.ansrb4.Text = questiondr("4")
MyArray(3) = questiondr("4")
Dim userAns As String
If Me.ansrb1.Checked = True Then
userAns = MyArray(0)
ElseIf Me.ansrb2.Checked = True Then
answerId = MyArray(1)
ElseIf Me.ansrb3.Checked = True Then
userAns = MyArray(2)
ElseIf Me.ansrb4.Checked = True Then
userAns = MyArray(3)
End If
End If
conn.Close()
末次
而问题是,如何通过用户的答案为表tblResultDetails?
off-by-one,数组需要4个元素。 – Steve
你是什么意思?你能解释更多吗? – luly
'Dim MyArray(3)As String'这是一个只能包含3个字符串(从0到2的索引)的数组。您需要'Dim MyArray(4)As String'来存储4个字符串(索引从0到3)。只有3个元素,当您的代码尝试使用索引3时,您将在运行时收到索引超出范围异常。这种情况叫做'off-by-one'[见维基百科](http://en.wikipedia.org/wiki/Off-by-one_error) – Steve