在asp.net Web服务中使用存储过程检索数据时出现问题

时间:2011-02-18 04:13:11

标签: asp.net web-services visual-studio-2010 stored-procedures

我在DataBase中有这个存储过程:

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

当我在 Visual Studio 执行中测试此存储过程时,它可以正常工作

但是当我调用使用此过程的Web服务函数时,它不会给我任何结果(检索到的 DataSet 是空的)

所以我别无选择,只能像这样重写存储过程:

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

但这不是我真正想要的,我希望以前的方法能够运作。

有关此问题的更多信息:

我认为远程服务器无法访问 CarCategory 表来获取数据,,,那可能吗?

因为当我使用另一个存储过程调用一个调用另一个过程的函数来从 CarCategory 获取信息时,它不起作用并向我发送错误。

为什么服务器找不到任何行,有很多行应该检索它真的很烦人,我无法弄清楚为什么任何人都可以帮忙?????????????? p>

此错误是:

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 个答案:

答案 0 :(得分:1)

检查您的连接字符串,确保它拥有哪个用户。

如果它使用集成的安全/ Windows身份验证,请注意Web服务将使用ASP.NET帐户而不是您的帐户。这可能是它无法访问数据库的原因。如果是这样,您可以使用SQL身份验证来解决,例如。

相关问题