C# JOIN 和 DataSet:它将如何工作
本文关键字:何工作 工作 JOIN DataSet | 更新日期: 2023-09-27 18:30:26
我有两个表:A和B。
表 A:
编号 |数1 |22 |53 |1
表 B:
编号 |名字2 |X5 |Y1 |Z
当我从数据库中获取信息时,我会填充一个数据集。但是,我在 A.Number = B.Name 上使用 JOIN。因此导致:
结果:
编号 |号码 |名字1 |2 |X2 |5 |Y3 |1 |Z
我有一个 DataGridView,它显示结果,但只显示 ID 和名称列。
有一件事困扰着我。我想更改结果。数据网格视图中的名称值,但我希望使用相应的 A 更新表A。B 的数字值。名称值。表 A 没有"名称"列。
所以我想得到这样的东西:
表A之前:
编号 |数1 |2
数字 2 对应于"X"名称值。
在数据网格视图中更改"Y"的名称,该名称与"5"数字一致...
表A之后:
编号 |数1 |5
不要使用 Join。
您希望将表 A 显示为主体,并带有"数字"的查找列。
您需要 A 和 B 之间的关系,以及 A 上具有表达式属性的数据列
我假设Id
是两个表中的PK。通过更改表中"X"的名称B
您可以更改与Id
=2 关联的值Name
。如果要更改表 A
中的关联值 Id
=1,则需要将其Number
值更改为 5,而不是Name
本身。
您问的问题实际上是这样的:"如果表B
中存在名称,我希望Number
根据名称(不是唯一的)自动更改为其他名称"。Thich对我来说是相当荒谬的。例如,什么是值更改为不在列表中的项目?
您需要的是某种表A
列表,其中包含一个下拉列表,用于填充表B
中的值Number
。然后用户将从预定义列表中选择值,然后使用正确的Id
更新表 A
。
我会将 Result.Name 列更改为DataGridViewComboBoxColumn
,将表 B 连接到它,并在将其发送回数据库进行存储之前在客户端引用组合的值。
以下是用于DataGridView
的其他列类型
-
DataGridViewTextBoxColumn
-
DataGridViewCheckBoxColumn
-
DataGridViewImageColumn
-
DataGridViewButtonColumn
-
DataGridViewLinkColumn
-
自定义:继承自
DataGridViewColumn