找不到存储过程
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 没有打补丁的情况下,存储过程不是立刻生效的,可能需要重启服务。
换数据库,或者安装补丁