已经在链接字符串 加入 Connect Timeout=600,
并且<httpRuntime 
maxRequestLength="102400" 
executionTimeout="720" 
/> 
还是会出现错误 超时时间已到。在操作完成之前超时时间已过或服务器未响应。
请问怎么解决?

解决方案 »

  1.   

    填充到 dataset时 超时,数据不完整,中断了
    如原本应该有177条数据,但结果只有 70条就中断了。
      

  2.   

    优化下算法。
    如果行列转换在SQL上进行,可以考虑设置Command.CommandTimeOut的长短,但显然这不是个好注意
    也可以采取将行列转换在C#这边进行,但如果开销很大也不是个好注意。另外如果该操作不很频繁可以采取在某一时刻进行,然后缓存的方式。只有规避哇
      

  3.   

    主要应该是函数那里开销大,我能力之内觉得已经是最优的了
    有什么好建议列个函数给点建议,这个函数作为一个字段列出CREATE function GETFIELD2(
    @USERID int,
    @TID int
    )
    returns int
    as
    begin
    declare @NUM int,@OUTNUM intselect @NUM=count(distinct(a.项目名称))
    from Work_Info a 
    inner join [TAL_SKILLS-PROJECT] tsp 
    on a.项目名称=tsp.PRONAME 
    inner join [User] b 
    on b.用户帐号=a.工号 and b.用户姓名=a.姓名 
    where PTID=@TID and b.用户ID=@USERID and a.项目大类='呼出' 
    if (@NUM=null)
       set @OUTNUM=0
    else if (@NUM>=0)
       set @OUTNUM=@NUM
    else
      set @OUTNUM=0
    return @OUTNUM
    end
      

  4.   

    new System.Data.SqlClient.SqlCommand().CommandTimeout=100