Saat Anda membaca kumpulan hasil kueri, Anda menggunakan loop seperti yang Anda tahu.
While dr.Read
' run this for every row in your resultset
...
End While
While
loop terus berjalan sampai Anda membaca semua baris.
Anda tidak harus menggunakan lingkaran. Jika mau, Anda dapat membaca baris satu per satu, seperti ini
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
...
Dari pertanyaan Anda, saya kira Anda memiliki Textbox1
, Textbox2
, ... Textbox5
pada formulir Anda. Saya juga menduga Anda memiliki Grade1
, Grade2
....
Untuk menangani nama mata pelajaran dan nilai, ubah baris pertama kueri Anda menjadi
sql = "SELECT subject_name, grade " & _
Anda dapat mengisi item tersebut seperti ini:
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.
Ini memecahkan masalah Anda. Tetapi Anda mungkin memperhatikan bahwa itu adalah pengulangan yang tidak masuk akal. Yang benar-benar Anda butuhkan adalah sebuah array (sebenarnya dua array) dari kotak teks. Anda membuat, dan kemudian mengisi, kotak teks ini di program Anda. Saya belum men-debug ini:Anda harus melakukannya.
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
Saat ini berjalan, Anda akan memiliki dua kolom kontrol, satu untuk setiap subjek. Tetapi kode ini rumit, dan Anda harus melakukan semua tata letak formulir Anda dengan Something.Y = value
lalu Y = Y + 50
hitung.
Itu sebabnya kontrol grid ada. Mereka mengurus hal semacam itu.