【发布时间】:2013-02-25 04:34:34
【问题描述】:
在 Visual Studio 设计器中,我创建了一个包含 2 个数据表的数据集; EmployeeDT 和 PayrollSheetDT 通过 SELECT 语句从 SQL Server 中提取数据。这两个数据表通过SSN 列建立关系。
相关的SQL Server数据库结构:
- 表:
Employee,列:SSN(主键),Driver - 表:
PayrollSheet,列:SSN(外键),PSDate
在我的 PayrollSheet 表单中,我有多个组合框,其中绑定了 EmployeeDT 数据表的 DisplayMember 和 ValueMember。当我启动程序时,我成功单击“驱动程序”组合框中的向下箭头,选择驱动程序名称,并让其他组合框显示来自该驱动程序/SQL 记录的信息 - 因为它们绑定到相同的数据源。
我在组合框旁边还有一个列表框,目的是在组合框中选择SSN 时显示PSDate。
列表框是我的问题。我需要能够更改任何组合框中的值,并将 PSDate 显示在列表框中。我不知道这是否可以做到,因为 PayrollSheetDT DataTable 执行静态 SQL 查询,但我想要的是相当于添加 WHERE SSN = <selected ssn in other datatable>
我不太了解如何执行此操作,但如果我尝试填写 TableAdapter,则会收到以下错误:
一行或多行包含违反非空、唯一或外键约束的值。
感谢您的帮助
【问题讨论】:
-
您 100% 正确,PSDate 在 SQL 数据库中被标记为 NOT NULL。一旦修复,一切都按预期工作。非常感谢!
标签: c# sql-server visual-studio-2012 datatable dataset