使用.Net DataSet Designer和NVL()

时间:2012-02-28 14:23:13

标签: .net visual-studio-2010 dataset dataset-designer

我第一次尝试使用带连接和函数的查询在VS2010 DataSet Designer中创建DataSet / TableAdapter; NVL()。通常,我只使用单个数据库表,将它们从服务器资源管理器拖到设计器工作区。 在这种情况下,我右键单击并添加了TableAdapter并输入以下查询:

SELECT a.primary_key, NVL(a.message, b.subject) as subject
FROM TableA a, TableB b
WHERE a.primary_key = b.primary_key (+) 
AND (a.time_stamp BETWEEN :time_start AND :time_end);

DataTable是使用适当的列创建的。问题是,当尝试在TableAdapter上执行查询时,我收到错误:

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

我没有在各列的属性中看到任何异常。我错过了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

很可能是左外连接而且缺少FROM子句。

上次没有为b返回行时发生这些事情,但是很久以前,我甚至忘记了旧的连接语法...在查询分析器或ssms中运行查询并告诉我们:)

以及此查询:

select count(1) from tableB where primary_key not in (select primary_key from tableA) 

答案 1 :(得分:0)

请务必将 DataSet 级别的“EnforceConstraints”属性设置为“false”。