gpt4 book ai didi

mysql - 为什么我的 datagridview 不显示任何结果?

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:39 24 4
gpt4 key购买 nike

我是 vb.net 的新手,正在尝试在我的数据 GridView 中显示来自 mysql 服务器的结果。谁能指出我的代码有什么问题?提前致谢。

为了安全起见,省略了我的连接字符串,但它确实连接了。如果我在代码中放置一个断点,它会用正确的数据填充数据集

Dim con As New MySqlConnection("server=;user id=;password=;database=")
con.Open()

Dim adp As New MySqlDataAdapter("Select CONCAT(FirstName,' ',Surname) as Name, LeaveDaysAvailable as 'Leave Days Available' from leave_database.Employees;", con)

Dim ds As New DataSet()
adp.Fill(ds)

dgvMain.DataSource = ds


con.Close()

这是结果。没有错误.... enter image description here

这是我在 mysql workbench 中运行相同查询的结果

enter image description here

最佳答案

DataSet 不直接包含数据。它有一个 Tables 集合,其中包含 DataTable 对象,每个对象都包含数据。如果将 DataSet 分配给 DataGridViewDataSource 属性,则还需要将 DataMember 属性设置为告诉它从哪个 DataTable 获取数据。

问题是,您还没有命名您的DataTable,所以您没有任何东西可以分配给DataMember。这一行:

adp.Fill(ds)

实际上创建了一个DataTable,填充它并将它添加到Tables 集合中。但是它没有名称,所以您没有名称可以将 DataMember 设置为。您需要首先命名 DataTable,例如

adp.Fill(ds, "MyDataTable")

然后你可以设置DataMember:

dgvMain.DataMember = "MyDataTable"
dgvMain.DataSource = ds

另一种方法是只绑定(bind) DataTable 而不是 DataSet,在这种情况下您不需要名称:

dgvMain.DataSource = ds.Tables(0)

问题是,如果您只是要使用一个 DataTable,为什么首先要创建一个 DataSet?只需创建一个 DataTable。然后,您可以将该 DataTable 传递给 Fill 调用并将其分配给 DataSource 属性。

关于mysql - 为什么我的 datagridview 不显示任何结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38238535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com