我已经设法将第一行的值写入了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()