如何在 c# 中将 DB 值导入 Datagridview(已创建 Datagrid 列)

How to get DB values into Datagridview in c# (Datagrid colums already created)

提问人:Nuisance 提问时间:11/6/2023 更新时间:11/19/2023 访问量:54

问:

我尝试将值从 DB 获取到 Datagridview 中,它工作正常,但我的问题是,我在从 DB 获取值之前编辑了一些 Datagridview 列。因此,当我尝试获取值时,datagridview 会创建一些新的列。

当我编写这些代码时,数据正确输入,但它添加了 5 个新列并在其下方添加了值。

 SqlDataAdapter da = new SqlDataAdapter(query, connection);
 DataSet ds = new DataSet();
 da.Fill(ds, "users");
 dataGridView1.DataSource = ds.Tables["users"];

enter image description here

我只向 datagridview 添加了 5 列。我的datagridview似乎是这样的。

enter image description here

当我尝试从 DB 获取值时,我的 datagridview 又添加了 5 列,看起来是这样的

enter image description here

我想要的是将值放在我一开始创建的列下,其他 5 列不应该创建,值也不应该出现在那里。 对不起我的英语。

C# DataGridView

评论

0赞 jhmckimm 11/6/2023
为 DataGridView 项创建专用类型/模型,并将数据库模型中的项目投影到该类型/模型上。
3赞 LarsTech 11/6/2023
尝试设置列以匹配您的列名称。DataPropertyName
3赞 Ralf 11/6/2023
除了设置 DataPropertyName 之外,您可能还希望在 DataGridView 上禁用 AutoGenerateColumns
0赞 Ralf 11/6/2023
您真的在数据库(ID)中以复数形式命名了ID列吗?
1赞 LarsTech 11/6/2023
查看您发布的屏幕图像。每一列都具有该属性。将每一列与 DataTable 中的名称相匹配。DataPropertyName

答:

-1赞 kertenkele 11/6/2023 #1

在我看来,首先创建数据库和表,然后添加要添加的列,而不仅仅是连接数据库,然后尝试提取值,我想知道您是否将数据集添加到您的datawiwgrid中?

评论

0赞 Community 11/7/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
1赞 Dj Sucuk 11/19/2023 #2

如果将数据库的列名与 DataPropertyName 字段同步,则将解决该问题。