Asp.net &引用;找不到存储过程<;此处的过程名称>&引用;

Asp.net &引用;找不到存储过程<;此处的过程名称>&引用;,asp.net,sql-server-2008,stored-procedures,sqldatasource,Asp.net,Sql Server 2008,Stored Procedures,Sqldatasource,我正在尝试向我的页面添加控件。我正在跟随向导。步骤1,我选择我的连接字符串。连接正常,没有错误消息。第2步,我选择“指定自定义SQL语句或存储过程”单选按钮。步骤3,在“选择”选项卡中,单击“存储过程”单选按钮,然后选择要使用的存储过程。我将此视为连接字符串正在工作的确认。第四步,我按下“测试查询”按钮 将出现一个弹出窗口,其中显示消息“执行查询时出错。请检查命令的语法以及参数的类型和值(如果存在),确保它们正确无误。找不到存储过程。” 我已经在SSMS中测试了这个过程,它运行正常。我获取了存储

我正在尝试向我的页面添加控件。我正在跟随向导。步骤1,我选择我的连接字符串。连接正常,没有错误消息。第2步,我选择“指定自定义SQL语句或存储过程”单选按钮。步骤3,在“选择”选项卡中,单击“存储过程”单选按钮,然后选择要使用的存储过程。我将此视为连接字符串正在工作的确认。第四步,我按下“测试查询”按钮

将出现一个弹出窗口,其中显示消息“执行查询时出错。请检查命令的语法以及参数的类型和值(如果存在),确保它们正确无误。找不到存储过程。”

我已经在SSMS中测试了这个过程,它运行正常。我获取了存储过程中的查询字符串,并将无线电从步骤3更改为“SQL语句”,然后将字符串粘贴到框中。该语句运行良好

我还将连接字符串中指定的登录权限更改为我在服务器上拥有的相同权限。(完全管理权限!),但这并没有纠正此问题。我在论坛中只发现了一些关于此问题的问题,它们都指向权限问题,但我在设置权限时排除了这一点

向导可以在我浏览向导时找到过程,但在我测试时找不到

我希望有人能给我指出正确的方向…谢谢

*编辑* 只需扩展@BlackjacketMack的答案:


当我使用向导创建SqlDataSource并从列表中选择存储过程时,似乎VS在运行时默认为dbo模式,即使它显示每个模式中的所有存储过程。(我通过将存储过程所在的模式更改为dbo并对其进行测试来验证这一点。返回的结果没有错误。)在向导中,我看不到任何更改架构的选项。如果我单击“SQL语句”单选按钮并键入EXECUTE[APP001].[MyStoredProcedure],它可以正常工作。我确实尝试了@otaku建议的授权执行,但没有成功。我还将连接字符串中指定的用户的默认架构更改为[APP001]无效。因此,在使用向导中的下拉列表时,这似乎是一个问题。手动输入数据以使架构完全合格,这样做了!

我认为在存储过程中定义执行上下文将解决此问题,以下是链接:


我认为在存储过程中定义执行上下文可以解决这个问题,下面是链接:


请确保正在运行的应用程序对数据库对象具有适当的“执行”权限。有时,它们与数据库角色绑定,如以下所示,其中存储过程需要具有“执行”权限:

GRANT EXECUTE ON ][dbo].[MyStoreProc] TO U_ExecuteProcs

请确保正在运行的应用程序对数据库对象具有适当的“执行”权限。有时,它们与数据库角色绑定,如以下所示,其中存储过程需要具有“执行”权限:

GRANT EXECUTE ON ][dbo].[MyStoreProc] TO U_ExecuteProcs

使用架构限定您的过程如果该过程具有您在注释中指出的架构“APP001”,请确保传递的Sql类似于EXEC
APP001.YourStoredProcedureName

使用探查器!解决此问题的一个好方法是在您的SQL上运行探查器…可以是MS探查器,也可以是我们以前免费使用的探查器。基本上,您可以确切地看到您的应用程序正在发送什么样的SQL以及他们发送的登录名


如果您按照您的指示为自己提供了管理权限,我不会定义太多的特定于对象的权限,因为它们往往无法维护。

请使用模式对您的过程进行限定。如果proc具有您在注释中指出的模式“APP001”,请确保传递的Sql类似于EXECde>APP001.YourStoredProcedureName

使用探查器!解决此问题的一个好方法是在您的SQL上运行探查器…可以是MS探查器,也可以是我们以前免费使用的探查器。基本上,您可以确切地看到您的应用程序正在发送什么样的SQL以及他们发送的登录名


如果您按照您的指示为自己提供了管理权限,我不会定义太多特定于对象的权限,因为这些权限往往无法维护。

检查架构、dbo、sde等。确保过程和连接使用相同的架构。这就是我想到的。谢谢@Jaan!存储过程有一个架构aPP001,我验证了指定的登录名是该模式的所有者。还有什么我应该做的吗?据我所知,它背后没有这样的魔力,在不知道系统配置的情况下回答你的问题有点困难。如果我是你,我会重复检查,即使我确信它们是正确的,也会隐藏一些微小的东西在本例中为ing。请检查架构、dbo、sde等。确保过程和连接使用相同的架构。这是我脑海中突然出现的想法。谢谢@Jaan!存储过程有一个架构APP001,我验证了指定的登录名是该架构的所有者。还有什么我应该做的吗?据我所知,还有n哦,它背后有这么大的魔力,在不知道系统配置的情况下回答你的问题有点困难。如果我是你,我会仔细检查东西,即使我确信它们是正确的,在这个例子中隐藏着一些微小的东西。谢谢你@Amo。我加上了“作为所有者执行”“到存储过程,我仍然收到相同的错误消息。谢谢@Amo。我在存储过程中添加了“以所有者身份执行”,但仍然收到相同的错误消息。谢谢。在发布我的问题之前,我已经验证了这一点,并在标记B之前进行了重新测试