我有一个ACCESS数据库,里面有3000多一点的记录,想使用DATAGRIDVIEW显示出来,结果查询数据库很快(<1秒),但是显示的速度却很慢,要三分钟左右,哪怕我只选择1个字段,这几天实在没招了,求救我的计算机配置 
P42.4HT
1G内存下面是我的程序代码
ds = new DataSet ( );
da.SelectCommand.CommandText = strSql;
da.Fill ( ds , "right" );
dataGridView1.DataSource = ds.Tables[ "right" ];

解决方案 »

  1.   

    dataGridView1需要bind一下先吧不过感觉这个和速度慢应该没多大关系吧
      

  2.   

    DataTable dt = new DataTable();
    SqlCommand1.CommandText = strSql;
    conn.Open();
    dt.Load(SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
    dataGridView1.DataSource = dt;
      

  3.   

    搂主在winform下
    不用DataBind
      

  4.   

    你用的数据库ACCESS当然慢喔,如果你用MS SQL 2000就不一样了,Access用ODBC或ADO是很快的
      

  5.   

    zjh222(zjh) 
    两者速度是有区别,但不是像lz描述那样明显
      

  6.   

    估计不应该这么慢的,肯定有其他地方影响了,看看界面,把其他所有不相干的控件全部删除,只保留一个datagridview绑定看看
      

  7.   

    我的与棒定有关的代码如下                strSql="select txt1 from xx"
                    da.SelectCommand.CommandText = strSql;
                    this.Cursor = Cursors.Hand;
                    da.Fill ( ds , "right" );
                    this.Cursor = Cursors.WaitCursor;
                    dataGridView1.DataSource = ds.Tables[ "right" ];
                    this.Cursor = Cursors.Default;变成Hand后不到秒就变成了waitcursor,然后要等好几分钟后才出数据
      

  8.   

    我用的是WinForm,没有分页在WINFORM下能分页不,怎么分页
      

  9.   

    这个情况我遇到过,在winform下查询记录,一个datagrid显示出来,查询时间很短,但是绘制列表时间非常长!几乎就是死机的那种状态,建议分页显示!不是代码的问题!
      

  10.   

    你在代码中中试一下把DateTime.Now赋值给临时变量,每两句代码之间都插入一个这样的赋值,最后把所有这些临时变量按顺序打印出来,看看是哪句代码浪费的时间最多。