sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Vælg og vis alle rækker, der tilhører et bestemt ID

Når du læser en forespørgsels resultatsæt, bruger du som bekendt en løkke.

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

While loop fortsætter, indtil du har læst alle rækkerne.

Du behøver ikke bruge en løkke. Hvis du ønsker det, kan du læse rækkerne en ad gangen, sådan her

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

Ud fra dit spørgsmål antager jeg, at du har Textbox1 , Textbox2 , ... Textbox5 på din formular. Jeg gætter også på, at du har Grade1 , Grade2 ....

For at håndtere både emnenavn og karakter skal du ændre den første linje i din forespørgsel til

   sql = "SELECT subject_name, grade " & _

Du kan udfylde disse elementer som dette:

 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.

Dette løser dit problem. Men du bemærker sikkert, at det er absurd gentaget. Det, du virkelig har brug for, er et array (faktisk to arrays) af tekstbokse. Du opretter og udfylder derefter disse tekstbokse i dit program. Jeg har ikke fejlrettet dette:det skal du gøre.

  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

Når dette kører, vil du have to kolonner med kontroller, en for hvert emne. Men denne kode er kompleks, og du skal lave hele layoutet af din formular med Something.Y = value og derefter Y = Y + 50 aritmetik.

Det er derfor, der findes netkontrol. De tager sig af den slags.



  1. Forståelse af primærnøgle- og relationsdatabaser med MySQL (phpmyadmin)

  2. Sådan redigeres FLERE rækker/dataindtastninger i SQL Server Management Studio

  3. Hvordan krypterer man en specifik kolonne i en MySQL-tabel?

  4. phpmyadmin logger ud efter 1440 sek