Khi bạn đọc tập kết quả của một truy vấn, bạn sử dụng một vòng lặp như bạn đã biết.
While dr.Read
' run this for every row in your resultset
...
End While
While
vòng lặp tiếp tục cho đến khi bạn đọc hết các hàng.
Bạn không cần phải sử dụng một vòng lặp. Nếu bạn muốn, bạn có thể đọc từng hàng một, như thế này
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
...
Từ câu hỏi của bạn, tôi đoán bạn có Textbox1
, Textbox2
, ... Textbox5
trên biểu mẫu của bạn. Tôi cũng đoán bạn có Grade1
, Grade2
....
Để xử lý cả tên và điểm chủ đề, hãy thay đổi dòng đầu tiên của truy vấn thành
sql = "SELECT subject_name, grade " & _
Bạn có thể điền những mục đó như thế này:
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.
Điều này giải quyết vấn đề của bạn. Nhưng bạn có thể nhận thấy nó lặp đi lặp lại một cách vô lý. Những gì bạn thực sự cần là một mảng (thực ra là hai mảng) các hộp văn bản. Bạn tạo và sau đó điền vào các hộp thư này trong chương trình của bạn. Tôi chưa gỡ lỗi điều này:đó là việc bạn phải làm.
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
Khi điều này chạy, bạn sẽ có hai cột điều khiển, một cho mỗi chủ đề. Nhưng mã này phức tạp và bạn phải thực hiện tất cả bố cục của biểu mẫu với Something.Y = value
và sau đó Y = Y + 50
Môn số học.
Đó là lý do tại sao điều khiển lưới tồn tại. Họ lo việc đó.