phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Alle Zeilen auswählen und anzeigen, die zu einer bestimmten ID gehören

Wenn Sie die Ergebnismenge einer Abfrage lesen, verwenden Sie bekanntlich eine Schleife.

While dr.Read
    ' run this for every row in your resultset 
    ...
End While

Das While Die Schleife wird fortgesetzt, bis Sie alle Zeilen gelesen haben.

Sie müssen keine Schleife verwenden. Wenn Sie möchten, können Sie die Zeilen einzeln lesen, so

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

Aus Ihrer Frage geht hervor, dass Sie Textbox1 haben , Textbox2 , ... Textbox5 auf Ihrem Formular. Ich vermute auch, dass Sie Grade1 haben , Grade2 ....

Um sowohl den Fachnamen als auch die Note zu verarbeiten, ändern Sie die erste Zeile Ihrer Abfrage in

   sql = "SELECT subject_name, grade " & _

Sie können diese Elemente wie folgt füllen:

 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.

Dies löst Ihr Problem. Aber Sie bemerken wahrscheinlich, dass es sich absurd wiederholt. Was Sie wirklich brauchen, ist ein Array (eigentlich zwei Arrays) von Textfeldern. Sie erstellen diese Textfelder in Ihrem Programm und füllen sie dann aus. Ich habe das nicht debuggt:Das müssen Sie tun.

  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

Wenn dies ausgeführt wird, haben Sie zwei Spalten mit Steuerelementen, eine für jedes Thema. Aber dieser Code ist komplex, und Sie müssen das gesamte Layout Ihres Formulars mit Something.Y = value erstellen und dann Y = Y + 50 Arithmetik.

Aus diesem Grund gibt es Gittersteuerungen. Sie kümmern sich um so etwas.