phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Chọn và hiển thị tất cả các hàng thuộc một ID cụ thể

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 đó.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Cập nhật truy vấn làm cho các trường trống trong cơ sở dữ liệu

  2. Có cách nào không có bản ghi chỉnh sửa hàng loạt thủ công trên php MyAdmin không?

  3. phpMyAdmin nói không có đặc quyền tạo cơ sở dữ liệu, mặc dù đã đăng nhập với tư cách người dùng root

  4. # 2002 - Máy chủ không phản hồi (hoặc ổ cắm của máy chủ MySQL cục bộ không được định cấu hình chính xác)

  5. Làm cách nào để xuất một số hàng của bảng MySQL từ mệnh đề WHERE?