当使用ADO.Net调用存储过程时,如果存储过程执行时间过长,会出现超时问题。这是因为缺省的超时时间为30秒,如果超过这个时间,会报超时错误。解决这个问题需要在代码中修改超时时间,还要在连接字符串设置中修改超时时间。
1、在连接字符串中修改超时时间,如果使用Asp.Net,需要在修改web.config中的ConnectionString设置,增加Connect Timeout:
Database=WIMS;Server=(local);User Id =(Username); Password=(password);Connect Timeout=600
2、在代码中修改SqlCommand的CommandTimeout属性:
DbCommand cmd = GetCommand();
cmd.CommandTimeout = 600;
需要注意的是,超时时间不是越长越好,如果设置过长,真正超时错误发生的时候,用户等待时间会过长,影响用户体验。