为什么速度会那么慢? 做了一个页面,只简单显示数据而已,页面显示非常慢,查看"任务管理器",CPU和内存都正常,但就是页面显示慢,导致慢的原因有哪些呢?请大家帮忙分析下,先叩谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用dataSet来装载数据集,填在dataTable里,再来装datagrid,代码如下:strSql="select top 500 Id,colA,colB,colC.........from tableA "objData.ExcSqlDataSet(strSql,"tableA",ref objDs); --这句是取得dataset的数据集DataTable dt=new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("选择")); dt.Columns.Add(new DataColumn("信息ID"));intRowsCount=objDs.Tables["tableA"].Rows.Count; for( int i=0;i<intRowsCount;i++) { dr=dt.NewRow(); dr[0]="a" dr[1}="b" .... dt.Rows.Add(dr); }DataView dv=new DataView(dt); infoDataGrid.DataSource=dv; infoDataGrid.DataBind();----------代码只是简单的这样子,内存和CPU都占得少,为什么页面就那么慢,狂晕中........... for( int i=0;i<intRowsCount;i++) { dr=dt.NewRow(); dr[0]="a" dr[1}="b" .... dt.Rows.Add(dr); }}为什么非要这样呢?效率低就低在这里,同意的请举手! TO:qinhl99(林鸿) 因为表格里有80%的列需要做超连接,对于这个要求我也很郁闷,所以才采用了这种表格的方法,就是在创建表格的过程中,把每列的超连接做好,然后绑给datagrid 就这种情况,有其他好的解决方法吗?TO:srz007(呵呵) 我的机器还好 你可以这样试下,不过我不确定是否能极大的提高效率infoDataGrid数据装载直接使用objDs.Tables["tableA"]然后你写一个public方法专门用来格式化需要加连接的行在前台需要加连接的地方掉用这个方法 我同意qinhl99(林鸿):举“脚”行不? 没看到下面的,慢就是因为你先把每个需要做超级连接的列都循环了一次,又把做好连接的列循环给DataTable。问题就在 for( int i=0;i<intRowsCount;i++) { dr=dt.NewRow(); dr[0]="a" dr[1}="b" .... dt.Rows.Add(dr); }其中你是不是每循环一次都在给所有的列设置超连接啊,这样就是(循环次数*列数)那一定慢了 累就一个字!哎.....折腾了半天,终于知道原因在哪了, order by ...没有建索引:(,表里有30W左右的数据,哭死.........谢过大家了!上头那样的绑数据方式,对速度影响不是很明显.另外再问下finally在什么时候执行?public aa(){ conn = new SqlConnection(ConnStr);objComm = new SqlCommand(strSql,conn);try { conn.Open(); } catch(Exception e) { ..... } finally { Dispose(conn); }}我在页面调用了这个方法,但是在页面上我没有写关闭对象的方法,这时候不知道public aa()里开辟的对象关闭了没? 另外再问下finally在什么时候执行?public aa(){ conn = new SqlConnection(ConnStr);objComm = new SqlCommand(strSql,conn);try { conn.Open(); } catch(Exception e) { ..... } finally { Dispose(conn); }}我在页面调用了这个方法,但是在页面上我没有写关闭对象的方法,这时候不知道public aa()里开辟的对象关闭了没? finally 在最后都要执行conn已关闭 OK,谢谢winesmoke()谢谢大家 用循环去绑定datagrid,速度确实慢,这种方法确实不可行 急求 asp.net考勤系统怎么连接打卡机 小弟,初学,求解读取数据问题 请问如何修改 用ListView怎样实现点击某一行的按钮,获取该行的行号? 请教一个生成随机数的问题 asp.net 错误日志求解 ? ASP.NET的状态管理问题(从C/S转到B/S一直有点晕) 如何提取时间中的 年 或 月 或 日? designtimedragdrop这个属性是什么意思? 用asp.net代码怎样实现数据库备份和还原 datagird中绑定dropdownlist 怎么样将下面的xml文件内容绑到DropDownList上
strSql="select top 500 Id,colA,colB,colC.........from tableA "
objData.ExcSqlDataSet(strSql,"tableA",ref objDs); --这句是取得dataset的数据集
DataTable dt=new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("选择"));
dt.Columns.Add(new DataColumn("信息ID"));
intRowsCount=objDs.Tables["tableA"].Rows.Count;
for( int i=0;i<intRowsCount;i++)
{
dr=dt.NewRow();
dr[0]="a"
dr[1}="b"
....
dt.Rows.Add(dr);
}
DataView dv=new DataView(dt);
infoDataGrid.DataSource=dv;
infoDataGrid.DataBind();
----------
代码只是简单的这样子,内存和CPU都占得少,为什么页面就那么慢,狂晕中...........
{
dr=dt.NewRow();
dr[0]="a"
dr[1}="b"
....
dt.Rows.Add(dr);
}
}
为什么非要这样呢?效率低就低在这里,同意的请举手!
因为表格里有80%的列需要做超连接,对于这个要求我也很郁闷,所以才采用了这种表格的方法,就是在创建表格的过程中,把每列的超连接做好,然后绑给datagrid
就这种情况,有其他好的解决方法吗?TO:srz007(呵呵)
我的机器还好
infoDataGrid数据装载直接使用objDs.Tables["tableA"]
然后你写一个public方法专门用来格式化需要加连接的行
在前台需要加连接的地方掉用这个方法
问题就在
for( int i=0;i<intRowsCount;i++)
{
dr=dt.NewRow();
dr[0]="a"
dr[1}="b"
....
dt.Rows.Add(dr);
}
其中你是不是每循环一次都在给所有的列设置超连接啊,这样就是(循环次数*列数)那一定慢了
折腾了半天,终于知道原因在哪了,
order by ...
没有建索引:(,表里有30W左右的数据,哭死.........
谢过大家了!
上头那样的绑数据方式,对速度影响不是很明显.
另外再问下finally在什么时候执行?
public aa()
{
conn = new SqlConnection(ConnStr);
objComm = new SqlCommand(strSql,conn);
try
{
conn.Open();
}
catch(Exception e)
{
.....
}
finally
{
Dispose(conn);
}
}我在页面调用了这个方法,但是在页面上我没有写关闭对象的方法,这时候不知道public aa()里开
辟的对象关闭了没?
public aa()
{
conn = new SqlConnection(ConnStr);
objComm = new SqlCommand(strSql,conn);
try
{
conn.Open();
}
catch(Exception e)
{
.....
}
finally
{
Dispose(conn);
}
}我在页面调用了这个方法,但是在页面上我没有写关闭对象的方法,这时候不知道public aa()里开
辟的对象关闭了没?
conn已关闭
谢谢大家