0

我需要一些帮助来根据数据库值生成按钮/图块,例如,如果数据库中有 5 个人,它将在表单上创建 5 个按钮,因此在加载时它将连接到数据库并根据用户的名字。

我知道我遗漏了一些东西,但不太确定这是我到目前为止所拥有的任何帮助都会很棒

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Data.SqlClient.SqlDataReader


Public Class Main

    Dim cn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Nate\documents\visual studio 2012\Projects\WindowsApplication9\WindowsApplication9\Database1.mdf;Integrated Security=True")
    Dim cmd As New SqlCommand
    Dim dr As SqlDataReader
    Private dataAdapter As New SqlDataAdapter()

    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'Database1DataSet11.StudentTB' table. You can move, or remove it, as needed.
        Me.StudentTBTableAdapter.Fill(Me.Database1DataSet11.StudentTB)

        cmd.Connection = cn
        Dim Ps As Integer
        Dim nm As String
        Ps = StudentTBBindingSource.Count
        nm = "select * from StudentTB"

        Dim I As Integer

        For I = 1 To Ps

            Dim srt As New Button
            srt.Width = 50
            srt.Height = 50
            srt.Text = nm
            srt.Visible = True
            srt.Location = New Point(I * 30, 0)
            Panel1.Controls.Add(srt)

        Next

    End Sub

我添加了这个编码,它似乎试图工作,但后来我说他们在位置 1 没有价值

srt.Text = Database1DataSet11.Tables(0).Rows(I).Item("FirstName")
4

1 回答 1

1

数组索引从零开始,在 Count - 1 结束

For I = 0 To Ps - 1

应该解决您在行访问上的问题,但是您需要

srt.Location = New Point((I+1) * 30, 0)
于 2013-05-30T11:38:48.070 回答