Wanneer u de resultatenset van een zoekopdracht leest, gebruikt u zoals u weet een lus.
While dr.Read
' run this for every row in your resultset
...
End While
De While
loop gaat door totdat je alle rijen hebt gelezen.
Je hoeft geen lus te gebruiken. Als je wilt, kun je de rijen een voor een lezen, zoals deze
If dr.Read
' just the first row
End If
If dr.Read
' just the second row
End If
If dr.Read
' just the third row
End If
...
Uit je vraag maak ik op dat je Textbox1
. hebt , Textbox2
, ... Textbox5
op je formulier. Ik denk ook dat je Grade1
. hebt , Grade2
....
Om zowel de vaknaam als het cijfer te verwerken, verander je de eerste regel van je vraag in
sql = "SELECT subject_name, grade " & _
U kunt deze items als volgt invullen:
If dr.Read
TextBox1.Text = dr.Item("subject_name").ToString
Grade1.Text = dr.Item("grade").ToString
End If
If dr.Read
TextBox2.Text = dr.Item("subject_name").ToString
Grade2.Text = dr.Item("grade").ToString
End If
If dr.Read
TextBox3.Text = dr.Item("subject_name").ToString
Grade3.Text = dr.Item("grade").ToString
End If
' more of these sets of four lines to fill your whole form.
Dit lost je probleem op. Maar je merkt waarschijnlijk dat het absurd repetitief is. Wat je echt nodig hebt, is een array (eigenlijk twee arrays) met tekstvakken. U maakt deze texboxen aan en vult ze vervolgens in in uw programma. Ik heb dit niet opgelost:dat is voor jou.
Dim Subjects As Textbox()
Dim Grades As Textbox()
...
Dim rownumber, Y
rownumber = 0
Y = 200
Dim Subject
Dim Grade
While dr.Read
Subject = New Textbox
Subject.Text = dr.Item("subject_name").ToString
Subject.Width = 200
Subject.Height = 40
Subject.X = 175
Subject.Y = Y
Subjects(rownumber) = Subject
Form.Controls.Add(Subject)
Grade = New Textbox
Grade.Text = dr.Item("grade").ToString
Grade.Width = 50
Grade.Height = 40
Grade.X = 400
Grade.Y = Y
Grades(rownumber) = Grade
Form.Controls.Add(Grade)
rownumber = rownumber + 1
Y = Y + 50
End While
Wanneer dit wordt uitgevoerd, heeft u twee kolommen met besturingselementen, één voor elk onderwerp. Maar deze code is complex en je moet de hele lay-out van je formulier doen met Something.Y = value
en dan Y = Y + 50
rekenkundig.
Daarom bestaan er netcontroles. Zij zorgen voor dat soort dingen.