使用了sqldatasource 控件,后台是使用存储过程,回为存储过程较复杂,有时会报 Timeout expired 错误。该怎样解决呢?
是不是要设置一下timeout属性的值,可是sqldataource控件好像没有timeout属性啊

解决方案 »

  1.   

    timeout是在数据源连接(DBConnection的子类,例如SQLConnection)上设置的。但是延长这个时间,必须考虑到所有开发者、所有代码的影响。除非特例,一般的程序而言,这个超时已经相当长了。你的程序应该修改存储过程或者业务逻辑设计,将同步改为异步(不是很多动作都必须立刻完成,真正的事务往往可以颠倒,例如如果你打Taxi没有代够钱,还有很多补救措施,而如果那些必须回到上车地点从头再来的做法在业务设计方面过分技术僵化),或者查询优化等等,提高100倍速度有时很容易,又是候修改业务逻辑会让用户更方便(觉得这产品不是一个计算机脑袋设计出来的,而是懂业务的人设计出来的)。
      

  2.   

    修改存储过程确实是一个办法,但可能工作量有点大。
    我想找一个工作量小一点的办法。
    另外
    我说的不是 connecttion timeout 而是commandtimeout
    在vs2003里,sqlcommand有一个属性是commandtimeout 用来设置执行超进时间,
    但vs2005里的 sqldatasource对象,好像没有commandtimeout属性。