Почему запрос адаптера таблицы Visual Studio не возвращает те же данные, что и хранимая процедура, которую он представляет? - PullRequest
0 голосов
/ 03 декабря 2008

Я использую адаптер таблицы в Visual Studio, чтобы сделать запрос к хранимой процедуре в моей базе данных SQL Server 2005. Когда я звоню через приложение веб-сайта, он ничего не возвращает. Когда я делаю тот же вызов через SQL Server Manager, он возвращает ожидаемые данные.

Я установил точку останова при вызове метода getData адаптера, посмотрел все параметры и их значения и сопоставил их в запросе от управления сервером, чтобы убедиться. Я отправляю следующий запрос:

getData(string, date, date, int, int?, int?, string, int?, string)

далее

getData('0000-rtg', '1/1/2007', '3/12/2008', 0, null, null, null, null, null)

Полагаю, мне интересно, что Visual Studio что-то делает с null перед тем, как попытаться отправить запрос на сервер SQL. Если нет, то как мне решить эту проблему?

EDIT: Все эти значения передаются переменными, я просто набрал то, что было в этих переменных в тот момент останова.

Ответы [ 3 ]

1 голос
/ 03 декабря 2008

Используйте Sql Profiler, чтобы увидеть, как на самом деле выглядит SQL, отправленный на сервер SQL. Это помогло мне много раз.

1 голос
/ 03 декабря 2008

Даты должны иметь кавычки в SQL, иначе они не работают.

0 голосов
/ 09 сентября 2009

Visual Studio может быть смешной с параметрами запроса. Убедитесь, что каждая переменная имеет правильную длину и тип. Например, я использую несколько параметров даты в запросе. Каждый раз, когда я редактирую запрос, Visual Studio автоматически определяет параметры даты и ограничивает переменную длиной 7. Я передаю дату как «9/12/2009», которая обрезается до «9/12/20», поэтому мне нужно вручную изменить параметры даты на длину 10.

...