Я пытаюсь выбрать строковые значения из базы данных MySql и затем поместить их в массив строк
Хорошо
, чтобы я мог выполнитьОператор цикла в массиве.
Вам не нужен массив для записи цикла.Вы можете просто перебрать список output
в этом коде, или вы можете сделать это:
Public Iterator Function GetItemName() As IEnumerable(Of String)
Dim sql As String = "Select ItemName From menuitem"
Using con As New MySqlConnection("Dsn=Invintory;uid=root"), _
cmd As New MySqlCommand(sql, con)
con.Open()
Using rdr As MySqlDataReader = cmd.ExecuteReader()
While rdr.Read()
Yield DirectCast(rdr("ItemName"), String)
End While
End Using
End Using
End Function
И затем зациклить его так:
Private Sub Cashier_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each item As String In GetItemName()
Dim itemBox As New TextBox()
itemBox.Name = item
itemBox.Text = item
'You may also want to set a location here
TableLayoutPanel1.Controls.Add(itemBox)
Next
End Sub
Или какэто:
Private Sub Cashier_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim boxes = GetItemName().Select(Function(n) New TextBox With {.Text = n})
TableLayoutPanel1.Controls.AddRange(boxes.ToArray())
End Sub
Еще лучше, если вы можете использовать элемент управления, который поддерживает привязку данных, например DataGridView.