原文: http://blog.csdn.net/iwteih/article/details/4515267
今天同事用代码调用存储过程时超时,在SQL Server Management Studio里运行却很快就有结果,这和我上次遇到的情况一下,现在将解决方案记录如下,谨为大家作一提醒。 解决方案就是: 把存储过程中多余的空格删掉。 瞠目吧结舌吧,不过这就是现实,现实是残酷的,现实是无情的,哈哈 不一定是哪个空格就引起了超时,试着看吧
上面的解决方案是将存储过程里的空格去掉,但如果这样,存储过程的格式就不是很友好后期维护也是很麻烦。
痛定思痛,于是乎有了下面的解决方案:即然是在数据库里执行成功,所以在程序里构造一条如下的SQL执行
SqlParameter param = new SqlParameter(" @project_id ", project_id); string selectCmd = string.Format(" exec dbo. [ ***Get*ro*ctCo*** ] @project_id ", project_id); DataSet ds = this.ExecuteQuery(CommandType. Text , selectCmd, param);
将存储过程的执行作为一条SQL传到数据库中执行。
OK,纠结的你,赶紧试试吧。。。
话说微软能把这个BUG清掉么,希望更多的人看到这篇文章,少点纠结