Проблемы с получением данных с помощью хранимой процедуры в веб-сервисе asp.net - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть эта хранимая процедура в моей базе данных:

Select something From somewhere Where Id = @Id  And Category in (Select carId From CarCategory where..)

когда я тестирую эту хранимую процедуру в Visual Studio Выполнить она работает просто отлично

Но Когда я вызываю функцию веб-службы, которая использует эту процедуру, она не дает никаких результатов (полученный DataSet пустой)

поэтому у меня не было выбора, кроме как переписать хранимую процедуру следующим образом:

 Select somthing From somewhere Where Id = @Id  And Category = @Category

Но это не то, чего я действительно хочу, я хочу, чтобы предыдущий метод функционировал.

больше информации по этой проблеме:

Я думаю, что удаленный сервер не может получить доступ к таблице CarCategory для получения данных ,,, это возможно ??

потому что, когда я использую другую хранимую процедуру для вызова функции, которая вызывает другую процедуру для получения информации из CarCategory , она не работает и выдает мне ошибку.

Почему сервер не может найти какую-либо строку, нужно извлечь много строк, это действительно раздражает, я не могу понять, почему кто-то может помочь ??????????????

эта ошибка:

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.IndexOutOfRangeException: There is no row at position 0.
   at System.Data.RBTree`1.GetNodeByIndex(Int32 userIndex)
   at System.Data.DataRowCollection.get_Item(Int32 index)
   at Selling_Agency.categoryNameToID(String Name) in e:\from moaaz\WEB SERVICES\carBroker_SellingAgency1\App_Code\Selling_Agency.cs:line 68
   --- End of inner exception stack trace ---

1 Ответ

1 голос
/ 18 февраля 2011

Проверьте строку подключения и убедитесь, какой у нее пользователь.

Если используется встроенная проверка подлинности / проверка подлинности Windows, обратите внимание, что веб-служба будет использовать учетную запись ASP.NET, а не вашу учетную запись.Это может быть причиной того, что он не может получить доступ к БД.Если это так, вы можете решить с помощью проверки подлинности SQL, например.

...