我做的一个程序里这样设计了他们之间的绑定和刷新,各位看看如果数据量大的情况下我这种方法是不是很占资源和影响速度:首先,我设计了一个类,有一个GetDataSet方法,根据提供的一些条件使用这个方法并返回一个DataSet,比如:Ly.myDataSet,并在Form里将此绑定到一DataGrid,dgTest.SetBinding(Ly.myDataSet,"test"),绑定后将Ly.myDataSet给Disposed了。然后,有一些对这个test表的增、删、改的操作,每操作后我都将前过程再重复一遍,我试验时,只将Test表中数据加至5000条,运行起来还算流畅。问题一:这样显然是不能充分利用DataSet的优越性实现数据库和DataGrid表的及时更新,该怎样修改?问题二:这种做法是否会在数据量加到很大时执行的速度会很慢。

解决方案 »

  1.   

    问题一:这样显然是不能充分利用DataSet的优越性实现数据库和DataGrid表的及时更新,该怎样修改?
    不知道你更新具体是怎么去更新的,你这样绑定已经影响速度了!问题二:这种做法是否会在数据量加到很大时执行的速度会很慢。当数据量上万的时候,影响就很大了,数据小的时候你感觉不到建议提供筛选条件,用则取,改则更新,眉毛胡子一把抓,很费资源的
      

  2.   

    问题一:这样显然是不能充分利用DataSet的优越性实现数据库和DataGrid表的及时更新,该怎样修改?
    使用dataAdapter本身的Update影响比校小问题二:这种做法是否会在数据量加到很大时执行的速度会很慢。
    不管哪种做法数据量加到很大时执行的速度会很慢
      

  3.   

    private void Form1_Load(object sender, System.EventArgs e)
    {
    con=new System.Data.OleDb.OleDbConnection(strCon);
    con.Open();
    ds=new DataSet();
    da=new System.Data.OleDb.OleDbDataAdapter("select * from test",con);
    da.Fill(ds,"test");
    dgTest.SetDataBinding(ds,"test");
    da.Dispose();
    ds.Dispose(); } private void button1_Click(object sender, System.EventArgs e)
    {
    ds=(DataSet)dgTest.DataSource;
    da=new System.Data.OleDb.OleDbDataAdapter("select * from test",con); System.Data.DataTable dt=ds.Tables["test"];
    System.Data.DataRow myDr=dt.NewRow();
    myDr["test"]=txt1.Text;
    dt.Rows.Add(myDr);
    System.Data.OleDb.OleDbCommandBuilder cb=new System.Data.OleDb.OleDbCommandBuilder(da);
    da.Update(ds,"test");
    da.Dispose();
    ds.Dispose();
    }那看这样改过后还影响吗?form1_load是显示,button1_click是添加
      

  4.   

    DATAGRID与DATASET绑写后,DATASET的变化会自动与DATAGRID同步然后用update()就可以直接更新到DATABASE里
      

  5.   

    问题一:这样显然是不能充分利用DataSet的优越性实现数据库和DataGrid表的及时更新,该怎样修改?
    使用dataAdapter本身的Update影响比校小问题二:这种做法是否会在数据量加到很大时执行的速度会很慢。
    你可以分页显示 一次只从数据库中取出一页的数据 这样在大数据量时也不会很慢的
      

  6.   

    你可以直接将txtbox与dataset的相应字段绑定
    然后txtbox中输入数据以后,只需...endcurrentedit,然后update