如何使用VB.Net中已定义的列填充datagridview

问题描述 投票:1回答:1

我试图用我的MySQL数据库中的数据填充我的DataGridView。这是我的问题,我的列已经在DataGridView中创建。

它不是将数据放在正确的列中,而是创建具有相同名称的额外列。

我尝试更改列的设计器名称,使它们与MySQL的名称相匹配。这根本没有帮助。

所以我的猜测是我需要用一段代码修复它,但不知怎的,我无法弄清楚我需要什么。

MysqlConn.Open()

Query = "select * from offerte.Offerteinhoud where Offertenummer2='" & OfZo.Text & "'"

COMMAND = New MySqlCommand(Query, MysqlConn)
    READER = COMMAND.ExecuteReader
    table.Load(READER)

    With DataGridView1

        .DataSource = table

    End With

MysqlConn.Close()

我认为我的问题是我只是将整个数据库加载到datagridview中。我的MySQL表还包括我不希望包含在datagridview中的2列。

编辑2:解决方案编号1。

您可以在网格中创建要显示的列名称的别名,而不是像这样:

选择col1作为[Column 1],col2作为[Column 2],col3来自> offerte.Offerteinhoud ...

然后,如果您不想显示列col3,可以使用>下面的代码隐藏它:

DataGridView1.Columns(“col3”)。Visible = False

这就像一个魅力:)

解决方案编号2

我将列的DataPropertyName更改为与MySQL列名称相同的名称。这样它就可以在没有问题的情况下对数据进行绑定。

为了删除2列,我不想显示我使用下一个代码删除它们。

DataGridView1.Columns.Remove("offertenummer")
DataGridView1.Columns.Remove("offertenummer2")

我在我的代码中使用了第二个解决方案,所以它最终看起来像这样。

MysqlConn.Open()

Query = "select * from offerte.Offerteinhoud where Offertenummer2='" & OfZo.Text & "'"

COMMAND = New MySqlCommand(Query, MysqlConn)
    READER = COMMAND.ExecuteReader
    table.Load(READER)

    With DataGridView1

        .DataSource = table

    End With

DataGridView1.Columns.Remove("offertenummer")
DataGridView1.Columns.Remove("offertenummer2")

MysqlConn.Close()

编辑3:解决方案3

最后,由于表的绑定数据,我遇到了一些问题。

我编写了以下代码。

        MysqlConn.Open()

        Query = "select * from offerte.Offerteinhoud where Offertenummer2='" & OfZo.Text & "'"

        COMMAND = New MySqlCommand(Query, MysqlConn)
        READER = COMMAND.ExecuteReader
        While READER.Read

            aantal = READER.GetString("Aantal")
            artikelnummer = READER.GetString("Artikelnummer")
            capaciteit = READER.GetString("Capaciteit")
            eenheid = READER.GetString("Eenheid")
            prijs = READER.GetString("Prijs")
            product = READER.GetString("Product")


            DataGridView1.Rows.Add(aantal, artikelnummer, capaciteit, eenheid, prijs, product)

        End While

        MysqlConn.Close()

因为我调整了列的DataPropertyName,所有内容都被添加到右列,并且可以编辑DataGridView本身而不会出现绑定数据问题。

我希望这会在他的VB.net之旅中帮助其他人。

mysql sql .net vb.net visual-studio
1个回答
1
投票

您可以使用以下方法制作要在网格中显示的列名的alias,而不是执行此类操作:

select col1 as [Column 1], col2 as [Column 2], col3 from offerte.Offerteinhoud ...

然后,如果您不想显示列col3,可以使用以下代码隐藏它:

DataGridView1.Columns("col3").Visible = False
© www.soinside.com 2019 - 2024. All rights reserved.