Je crée un système de questions à choix multiple. Jusqu'à présent, je crée ces 4 tables et 1 vue.Passer un tableau dans le tableau
Les tables sont tblQuestion, tblAnswer, tblQuiz, tblResult et tblResultDetail. tblQuestion est de stocker les questions, tblAnswer pour stocker les réponses de la question, tblResult est d'enregistrer pour chaque utilisateur qui répond au quiz, et stocker les réponses des utilisateurs dans TblResultDetails. Selon le code ci-dessous, les données sont lues à partir de la vue.
(questiondr.Read). J'utilise 1, 2, 3, 4 car c'est le nom de la colonne de la vue. Je l'ai fait pour randomiser les réponses.
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()
End Sub
Et le problème est, comment transmettre les réponses des utilisateurs dans tblResultDetails de table?
Off-by-one, array nécessite 4 éléments. – Steve
que voulez-vous dire par là? pouvez-vous expliquer plus? – luly
'Dim MyArray (3) As String' est un tableau qui ne peut contenir que 3 chaînes (index de 0 à 2). Vous avez besoin de 'Dim MyArray (4) As String' pour stocker 4 chaînes (index de 0 à 3). Avec seulement 3 éléments, lorsque votre code essaie d'utiliser l'index 3, vous recevrez une exception Index Out Of Range lors de l'exécution. Cette situation est appelée 'off-by-one' [Voir Wikipedia] (http://en.wikipedia.org/wiki/Off-by-one_error) – Steve