从 SQL 读取到 Button

read from SQL to Button

请帮助解决这个问题,我想从 SQL 读取 ID 到不同的按钮,但我仍然无法做到。请帮忙

这是我试过的代码。 此代码在两个按钮中读取相同的 ID,而不是在不同按钮中读取不同的 ID。请参阅屏幕截图以供参考。

Dim dt As New DataTable
Dim da As New SqlDataAdapter("select Locker_ID from Locker", colnnn)
da.Fill(dt)

For Each row As DataRow In dt.Rows
    Button2.Text = row.Item("Locker_ID")
    Button1.Text = row.Item("Locker_ID")
Next

您不仅需要循环行,还需要循环按钮。如果您有 2 个储物柜行,您的循环将执行循环体两次。即,第一个储物柜 ID 分配给两个按钮,然后第二个储物柜 ID 再次分配给相同的按钮,覆盖第一个值。

Dim dt As New DataTable
Dim da As New SqlDataAdapter("select Locker_ID from Locker", colnnn)
da.Fill(dt)

Dim i As Integer = 1
For Each row As DataRow In dt.Rows
    Controls("Button" & i).Text = row.Item("Locker_ID")
    i = i + 1
Next

这会将第一个 Locker_ID 分配给 Button1,第二个分配给 Button2,等等

Controls 集合允许您使用字符串作为索引按名称访问控件。

请注意,您可以更改按钮的名称。如果您将想要拥有储物柜 ID 的按钮命名为 btnLocker1btnLocker2btnLocker3 等,那么 Controls("btnLocker" & i).Text = row.Item("Locker_ID") 将自动 select 正确的按钮。


建议让您的控件说出名字。此外,在创建事件处理程序之前执行此操作。例如,没有人知道 Sub Button17_Click 应该做什么;但是,如果您将按钮命名为 btnPrint,则当您双击该按钮时,winforms 设计器将自动创建一个名为 btnPrint_Click 的 Sub。


另请参阅:For Each Loops