2014-09-03 151 views
0

我在寫一個與SQL Server數據庫通信的C#Windows窗體應用程序。有兩張感興趣的表,SubmissionProducer。在提交表格適配器,我有一個執行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中直接測試了查詢,並且它工作得很好,所以數據在那裏,查詢是有效的。這裏發生了什麼?

回答

0

我不是一個真正的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 
+0

感謝您的回答,但這只是編寫相同查詢的不同方式。 – 2014-09-03 18:18:17

+0

它是,但我認爲連接可能會改變數據集和sql讀取它的方式。 – DidIReallyWriteThat 2014-09-04 12:14:49

0

我得到這個選擇在Submission各個領域,其次是我從其他表要到地裏幹活。例如:

SELECT S.submissionId, S.name, ..., P.name 
FROM dbo.Submission S, dbo.Producer P 

其中...表示在Submission表中的字段的其餘部分。

這是非常煩人和浪費,但至少它的工作原理。