【问题标题】:DataGridView not enfocing foreign key constraintDataGridView 不强制外键约束
【发布时间】:2013-11-22 05:14:48
【问题描述】:

我正在尝试开发一个业务应用程序,但是遇到了一些问题。

我有一个DBDataSet,它使用我的数据库作为其来源。

我正在使用VS通过从数据源窗口拖动到表单上来自动生成DataGridView。

我有两张桌子。 Customer 和 Sales。它们与Sales的id列是一一对应的,引用Customer的id列。

但是,每当我在 Sales 的 id 列中输入一个不在 Customer 的 id 列中的值时,DataGridView 不会抛出异常,而是允许输入数据。

但是,当我尝试在同一个表中输入重复的主键时,datagridview 会通过抛出异常来响应。

我怎样才能对外键约束做同样的事情。

【问题讨论】:

  • 以及为什么您尝试插入或复制主键.. 据了解,每当您尝试重复主键时,它都会引发异常..
  • 我知道我只是用它来检查 datagridview 是否与底层数据库中的约束成功交互。
  • 现在你的意思是一个约束正在工作而另一个不是......??
  • 是的,完全正确。主键约束工作正常,但外键约束不是。
  • 我认为你的工作方向错误..一对一的关系只存在于列之间..

标签: c# .net sql winforms datagridview


【解决方案1】:

从数据库导入期间未创建外键约束。右键单击数据集视图中的销售表 -> 添加 -> 关系...选择您的主键和外键。 “选择要创建的内容”第一个或第二个选项。或者您可以在代码中执行此操作: this.DBDataSet.Sales.Constraints.Add( 新的 ForeignKeyConstraint(this.DBDataSet.Customer.IdColumn, this.DBDataSet.Sales.IdColumn));

【讨论】:

  • 我已经在数据库级别创建了所有约束。我假设 DataGridView 会在 UI 中自动执行这些,但它似乎没有。
猜你喜欢
  • 2016-02-18
  • 1970-01-01
  • 2011-10-29
  • 2019-09-29
  • 2011-01-19
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 2019-01-09
相关资源
最近更新 更多