【问题标题】:How to insert data to a sql server relational database that involve primary and foreign keys in C#如何将数据插入到 C# 中涉及主键和外键的 sql server 关系数据库
【发布时间】: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


【解决方案1】:

您有一个从性别表中填充的下拉列表。下拉列表有一个设置为 gender_type 的文本和一个设置为性别表 id 的值。 当用户在下拉列表中选择一个项目时,获取所选项目的值并存储在 Persons 表中

【讨论】:

  • 这是个好主意。我会尝试并回复你。谢谢
猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
相关资源
最近更新 更多