我已经设法将第一行的值写入了label1,但是我不知道为什么我无法获得label2的第二行的值。这是我设法走了多远

    myCommand.CommandText = "SELECT allText FROM tbltest"
    myDatareader = myCommand.ExecuteReader

    Do While myDatareader.Read()
        label1.Text = myDatareader(0).ToString()
        label2.Text = myDatareader(1).ToString()
    Loop


PS!我收到此错误“索引超出了数组的范围”。我做错了什么事?

PSS!在亚历克斯(Alex)的帮助下,我写了这些,从而解决了问题。
它的作用是,读取值并将其作为标签写入面板内。



    Public Sub getit()
        Dim count As Integer = 0

        myCommand.CommandText = "SELECT allText FROM tbltest"
        myDatareader = myCommand.ExecuteReader

        Do While myDatareader.Read
            count += 1
            show(myDatareader(0).ToString, count)
        Loop
    End Sub

    Public Sub show(ByVal name As String, ByVal count As Integer)
        Dim allTextlabel As New Label()

        allTextlabel.Location = New Point(10, (45 * (count)) + 1)
        allTextlabel.Size = New Size(100, 25)
        allTextlabel.Name = "lbl_" & name.ToString
        allTextlabel.Text = name.ToString

        Panel1.Controls.Add(allTextlabel)
    End Sub

最佳答案

由于您只请求了一个列myCommand.CommandText = "SELECT allText FROM tbltest"(即allText),因此您没有任何myDatareader(1)只是第一个索引为0 myDatareader(0)的列。

更新我在VB中不是很强大,但是您可以尝试:

Dim Phrase() as string
i=0

Do While myDatareader.Read()
    i=i+1
    Phrase(i) = myDatareader(0).ToString();
Loop

    label1.Text = Phrase(1).ToString()
    label2.Text = Phrase(2).ToString()
    label3.Text = Phrase(3).ToString()
    label4.Text = Phrase(4).ToString()
    label5.Text = Phrase(5).ToString()

08-04 17:27