我正在创建多项选择题系统。 到目前为止,我创建了这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 =QuestionID=@IdQuestion", 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()
End Sub
问题是,如何将用户答案传递到表tblResultDetails?
答案 0 :(得分:0)
假设tblResultDetails
包含userid
的字段,questionid
的字段以及该特定用户对该特定问题给出的答案字段,那么您需要类似的内容这个
Dim cmdText = "INSERT INTO tblResultDetails VALUES (@userid, @questionid, @answerid)"
Dim cmd = new SqlCommand(cmdText, connection)
cmd.Parameters.AddWithValue("@userid", yourCurrentUserIDValue)
cmd.Parameters.AddWithValue("@questionid", yourCurrentQuestionIDValue)
cmd.Parameters.AddWithValue("@answerid", userAns)
cmd.ExecuteNonQuery()
正如你所看到的那样,如果你存储了两个缺失的信息(userid和questionid),它就非常简单了