将数据从 MySQL 加载到 DataGridView 的重复行

Duplicate Rows Loading Data From MySQL to DataGridView

我在使用 MySQL 和 VB.NET

时遇到行重复

这是我的代码:

db_con.Open()
Dim db_da As New MySqlDataAdapter("select U_ID,U_FNAME,U_MNAME,U_LNAME,U_YEAR,U_SECT,U_VALIDATION from TBL_USER where U_SECT = '" & SRAMngt_Mod.cmb_sect.SelectedItem & "'", db_con)
Dim db_dt As New DataTable
db_da.Fill(db_dt)
db_con.Close()
SRAMngt_Mod.DataGridView1.DataSource = db_dt
SRAMngt_Mod.DataGridView1.Columns(0).DataPropertyName = "U_ID"
SRAMngt_Mod.DataGridView1.Columns(1).DataPropertyName = "U_FNAME"
SRAMngt_Mod.DataGridView1.Columns(2).DataPropertyName = "U_MNAME"
SRAMngt_Mod.DataGridView1.Columns(3).DataPropertyName = "U_LNAME"
SRAMngt_Mod.DataGridView1.Columns(4).DataPropertyName = "U_YEAR"
SRAMngt_Mod.DataGridView1.Columns(5).DataPropertyName = "U_SECT"
SRAMngt_Mod.DataGridView1.Columns(6).DataPropertyName = "U_VALIDATION"

我的结构或代码有问题吗?

尝试重新格式化您的查询,例如

SELECT U_ID AS [User ID], U_FNAME AS [First Name] etc...

那么就不需要在刚设置的DataGridView中设置列了

SRAMngt_Mod.DataGridView1.DataSource = db_dt

并且 DataGridView 将显示来自数据库的数据,并将列 header 设置为您在查询中指定的名称作为显示名称。

如果您仍然遇到行重复,请尝试在填充命令之前清除 DataTable。

db_dt.Clear()

如果问题仍然存在,则 运行 查询您的数据库并查看结果。如果它 returns 重复行,那么您在查询中设置的条件不是唯一的,请选择另一个唯一值。

希望这对您有所帮助。