Když čtete sadu výsledků dotazu, používáte smyčku, jak víte.
While dr.Read
' run this for every row in your resultset
...
End While
While
smyčka pokračuje, dokud nepřečtete všechny řádky.
Nemusíte používat smyčku. Pokud chcete, můžete číst řádky jeden po druhém, jako je tento
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
...
Z vaší otázky předpokládám, že máte Textbox1
, Textbox2
, ... Textbox5
na vašem formuláři. Také předpokládám, že máte Grade1
, Grade2
....
Chcete-li zpracovat název předmětu i hodnocení, změňte první řádek dotazu na
sql = "SELECT subject_name, grade " & _
Tyto položky můžete naplnit takto:
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.
Tím je váš problém vyřešen. Ale pravděpodobně si všimnete, že se to absurdně opakuje. To, co opravdu potřebujete, je pole (ve skutečnosti dvě pole) textových polí. Tyto texboxy vytvoříte a poté vyplníte ve svém programu. Toto jsem neladil:to musíte udělat vy.
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
Když to běží, budete mít dva sloupce ovládacích prvků, jeden pro každý předmět. Tento kód je však složitý a musíte provést veškeré rozvržení formuláře pomocí Something.Y = value
a poté Y = Y + 50
aritmetický.
Proto existují ovládací prvky sítě. Postarají se o takové věci.