用的存储过程中有两个参数,分别是开始日期和结束日期如果日期范围短的就无问题,日期范围大的就老是说"超时时间已到"
我试过在查询分析器中是1分55秒的.
我已经在web.config中设置了这段:
<httpRuntime maxRequestLength="409600" executionTimeout="43200" />但没用.大家帮帮忙.谢谢.
我试过在查询分析器中是1分55秒的.
我已经在web.config中设置了这段:
<httpRuntime maxRequestLength="409600" executionTimeout="43200" />但没用.大家帮帮忙.谢谢.
解决方案 »
- 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
- .net 2005 字符的ASC码
- 怎么读取.XML的文件了??
- 关于前台验证和后台验证的问题
- 能给点建议吗?
- 如何重写DataGrid的ItemCreated方法
- 各位大哥 一个很幼稚的问题 关于动态提示 没有了
- 一个想不通的用户自定义控件绑定到DataGrid中单击下一页出错 想不通 帮看看
- 如何檢測datagrid中textbox的輸入內容是否有效。
- 为什么类型转换错误呢?关于DataGrid的模版列
- 有啥好用的javascript编辑器?
- 关于在同一母版页中使用多个CSS文件的最终解决方案!
{
try
{
this.Open();
cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "PKG_Winner.proc_ywjd";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
foreach (OracleParameter parameter in parameters)
{
cmd.Parameters.Add(parameter); } da = new OracleDataAdapter(cmd);
ds= new DataSet();
da.Fill(ds);
return (ds);
} finally
{
this.Close();
}
} OracleDataAccess oda = new OracleDataAccess();
DataSet ds;
OracleParameter[] parameters=new OracleParameter[5]; OracleParameter orderno = new OracleParameter("orderno", OracleType.VarChar);
orderno.Direction = System.Data.ParameterDirection.Input;
orderno.Value = this.TextBox2.Text.Trim();
parameters[0] = orderno; OracleParameter inputdate = new OracleParameter("inputdate", OracleType.VarChar);
inputdate.Direction = System.Data.ParameterDirection.Input;
inputdate.Value = this.TextBox1.Text.Trim();
parameters[1] = inputdate;
OracleParameter custnob = new OracleParameter("custnob", OracleType.VarChar);
custnob.Direction = System.Data.ParameterDirection.Input;
custnob.Value = this.DropDownList1.Text.Trim().ToString();
parameters[2] = custnob; OracleParameter custnoe = new OracleParameter("custnoe", OracleType.VarChar);
custnoe.Direction = System.Data.ParameterDirection.Input;
custnoe.Value = this.DropDownList2.Text.Trim().ToString();
parameters[3] = custnoe;
OracleParameter p = new OracleParameter("result1",OracleType.Cursor);
p.Direction = System.Data.ParameterDirection.Output;
parameters[4] = p;
ds = oda.ExcutProc("PKG_Winner.proc_ywjd", parameters);
CREATE proc getls
@startdate varchar(50),
@enddate varchar(50)
as
begin
declare @a varchar(4000)
set @a=''
select @a=@a+',cast(sum(case station_id when '''+ station_id +''' then h_price*h_amount*h_discount else 0 end) as numeric(18,2))'+station_name from db_station_total order by station_id
exec('select convert(varchar(7),ls_datetime,120)零售月'+@a+' from db_ls_item,db_ls where db_ls_item.ls_id=db_ls.ls_id and h_id in (select h_id from db_product where flag_sales_class=''1'') and ls_datetime between '''+@startdate+' 00:00:00'' and '''+ @enddat
e +' 23:59:59'' group by convert(varchar(7),ls_datetime,120) order by convert(varchar(7),ls_datetime,120)')
end
如果是 存储过程 超时 是和 这个没关系的.
这个是说 发送 页面请求的 超时时间.对于存储过程超时可以 加大sqlcommand的超时时间SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 60; //等待命令执行的时间(以秒为单位)。默认为 30 秒。
3分钟而已
___________________
LZ 喝高了哈, 处于半清醒状态吧~
默认的 30s 已经相当长了, 超过这个时间,基本是你的代码有问题,或者设计得不合理2.
如何设置?
考虑使用 xxxDataSource 的 Selecting, Updating, Deleting, Inserting 事件, 这些时间在相应 Command 执行之前出发, 如 seletingprotected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
// e.Command.CommandTimeout = 60; // 默认 30s 以足够
}3.
延长这个时间,必须考虑到所有开发者、所有代码的影响。
除非特例,一般的程序而言,这个超时已经相当长了。你的程序应该修改存储过程或者业务逻辑设计,将同步改为异步(不是很多动作都必须立刻完成,真正的事务往往可以颠倒,例如如果你打Taxi没有代够钱,还有很多补救措施,而如果那些必须回到上车地点从头再来的做法在业务设计方面过分技术僵化),或者查询优化等等,提高100倍速度有时很容易,又是候修改业务逻辑会让用户更方便(觉得这产品不是一个计算机脑袋设计出来的,而是懂业务的人设计出来的)。
ref: http://topic.csdn.net/t/20061005/23/5064092.htmlHope helpful!