【发布时间】:2018-01-08 10:57:47
【问题描述】:
我有一个问题,真的需要你的帮助。 我有两个相互关联的表,它们是: 人员(id(pk),first_name,last_name,age,address,gender_id(fk))。 性别(id(pk),gender_type)。 因此,通过查看这些表,您可以看到 Genders 表在 Persons 表中有一个引用,即 gender_id 列。 在我的 C# 代码中,我有一个从性别表(即男性和女性)中获取数据的性别组合框。 所以我想要的是当用户选择男性时,男性 id 应该像聪明的女性一样保存在 Persons 表中的 gender_id 列下。 任何反馈都将受到高度赞赏。
【问题讨论】:
-
我没有看到问题。这种关系实际上是相反的(我希望......): Persons 表引用了 Genders 表。因此,为您的组合框检索数据的代码也应该检索相关的 GenderID。如果用户选择
Male,您知道关联的 id,并在您的insert中使用它。由于该 id 存在于 Genders 表中(您从那里得到它),因此外键不是问题。 -
为什么不使用
datatable表示您的性别?将文本值设置为组合框的 DisplayMeber 和 ValueMember 作为 ID。然后用户会看到“Male”和“Female”,但是当您完成 SQL 时,请使用 ValueMember。 -
你的绑定代码是什么...到目前为止你所说的都没有错
-
除非你试图适应所有不同的性别识别可能性,否则 Gender 表有点矫枉过正。你可以让 Gender 列是一个 char(1) 并且约束在 ('M', 'F')
标签: c# sql-server database