原文: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清掉么,希望更多的人看到這篇文章,少點糾結