phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Selecione e exiba todas as linhas pertencentes a um ID específico


Ao ler o conjunto de resultados de uma consulta, você usa um loop como sabe.
While dr.Read
    ' run this for every row in your resultset 
    ...
End While

O While loop continua até que você tenha lido todas as linhas.

Você não precisa usar um loop. Se desejar, você pode ler as linhas uma de cada vez, assim
 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
 ...

Pela sua pergunta, acho que você tem Textbox1 , Textbox2 , ... Textbox5 em seu formulário. Eu também acho que você tem Grade1 , Grade2 ....

Para lidar com o nome da disciplina e a nota, altere a primeira linha da sua consulta para
   sql = "SELECT subject_name, grade " & _

Você pode preencher esses itens assim:
 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.

Isso resolve seu problema. Mas você provavelmente percebe que é absurdamente repetitivo. O que você realmente precisa é de um array (na verdade, dois arrays) de caixas de texto. Você cria e preenche essas caixas de texto em seu programa. Eu não depurei isso:isso é para você.
  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

Quando isso for executado, você terá duas colunas de controles, uma para cada assunto. Mas este código é complexo, e você tem que fazer todo o layout do seu formulário com Something.Y = value e então Y = Y + 50 aritmética.

É por isso que os controles de grade existem. Eles cuidam desse tipo de coisa.