TableAdapter查询返回空值
问题描述:
我在写一个与SQL Server数据库通信的C#Windows窗体应用程序。有两张感兴趣的表,Submission
和Producer
。在提交表格适配器,我有一个执行T-SQL的下列块的查询:TableAdapter查询返回空值
SELECT S.name, S.effDate, S.dotNumber, P.name
FROM dbo.Submission S, dbo.Producer P
WHERE S.submissionId = @submissionId and S.producerId = P.producerId;
当我使用一个SubmissionTableAdapter来运行此查询,它将返回三个值正常,但没有为P.name
。实际上,它不会从提交以外的任何其他表中返回任何值。我已经在SQL Server Management Studio中直接测试了查询,并且它工作得很好,所以数据在那里,查询是有效的。这里发生了什么?
答
我不是一个真正的SQL连接专家,但不会尝试从Producer表返回值的提交表适配器导致一些问题?为什么不做一个加入声明?
SELECT
S.Name, S.effDate, S.dotNumber, P.Name
FROM
dbo.Submission s
JOIN
dbo.Producer P on P.producerID = S.ProducerID
WHERE
S.submissionId = @submissionId
答
我得到这个选择在Submission
各个领域,其次是我从其他表要到地里干活。例如:
SELECT S.submissionId, S.name, ..., P.name
FROM dbo.Submission S, dbo.Producer P
其中...
表示在Submission
表中的字段的其余部分。
这是非常烦人和浪费,但至少它的工作原理。
感谢您的回答,但这只是编写相同查询的不同方式。 – 2014-09-03 18:18:17
它是,但我认为连接可能会改变数据集和sql读取它的方式。 – DidIReallyWriteThat 2014-09-04 12:14:49