当前位置: 代码迷 >> ASP.NET >> 找不到存储过程解决方案
  详细解决方案

找不到存储过程解决方案

热度:852   发布时间:2013-02-25 00:00:00.0
找不到存储过程
asp.net中执行一个存储过程,该存储过程在sql2005的management studio中执行没问题,我在aspx中换成统一数据库下的其它存储过程执行也没问题。但就某个存储过程不能执行,提示如下:

找不到存储过程 'getProjectByInitletter'。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
异常详细信息: System.Data.SqlClient.SqlException: 找不到存储过程 'getProjectByInitletter'。

咋回事?


------解决方案--------------------------------------------------------
确保你的存储过程是存在的,还有你的存储过程写好了,可以在数据库那边调用执行一下,看看行不行。

比如在sql server 2005中你写好了存储过程,你需要运行一下才会生成的。
------解决方案--------------------------------------------------------
仔细检查,是不是那个字母写错了,或者顺序颠倒了
------解决方案--------------------------------------------------------
数据库是传到服务器上去来的吗? 检查存储过程的架构名称。。是否有前缀
------解决方案--------------------------------------------------------
重新编译一下 试试 或者重新运行一下 存储过程
------解决方案--------------------------------------------------------
把你调用存储过程的代码贴出来....
------解决方案--------------------------------------------------------
没连错数据库吧
------解决方案--------------------------------------------------------
调用代码中 try catch 下
 能抛出啥!
还不行的话 写几句代码测试下 为空的话 就不用多解释了

------解决方案--------------------------------------------------------
判断存储过程是否存在
C# code
public static bool IsStoredProcExisting(SqlConnection conn, string procName)        {            bool result = false;            conn.Open();            SqlCommand command = conn.CreateCommand();            command.CommandText = "SELECT name FROM sysobjects WHERE  xtype = 'P' and name = @name";            command.Parameters.Add("@name", procName);            object temp = command.ExecuteScalar();            result = temp != null;            conn.Close();            return result;        }
------解决方案--------------------------------------------------------
把代码贴出来看看
------解决方案--------------------------------------------------------
我记得如果是sql server2005 没有打补丁的情况下,存储过程不是立刻生效的,可能需要重启服务。

换数据库,或者安装补丁
  相关解决方案