我试图用我的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之旅中帮助其他人。
您可以使用以下方法制作要在网格中显示的列名的alias
,而不是执行此类操作:
select col1 as [Column 1], col2 as [Column 2], col3 from offerte.Offerteinhoud ...
然后,如果您不想显示列col3
,可以使用以下代码隐藏它:
DataGridView1.Columns("col3").Visible = False