2014-09-03 5 views
0

Я пишу приложение Windows Forms C#, которое общается с базой данных SQL Server. Имеются две таблицы, представляющие интерес: 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, и он работает отлично, поэтому данные есть и запрос действителен. Что тут происходит?

ответ

0

Я действительно не эксперт по SQL Connection, но не мог ли адаптер таблицы представления, пытающийся вернуть значения из таблицы 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

Спасибо за ответ, но это всего лишь другой способ написания одного и того же запроса. –

+0

это, но я думал, что соединение может изменить набор данных и способ, которым sql читает его. – DidIReallyWriteThat

0

я получил эту работу, выбирая каждое поле в Submission, а затем поля, которые я хотел от других таблиц. Пример:

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

, где ... представляет собой остальную часть полей в Submission таблице.

Это довольно раздражает и расточительно, но, по крайней мере, это работает.

Смежные вопросы