将数组传递到表中

时间:2014-05-17 18:24:17

标签: asp.net arrays vb.net

我正在创建多项选择题系统。 到目前为止,我创建了这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?

1 个答案:

答案 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),它就非常简单了