mDtEventCommodtiyInfo.PrimaryKey = New DataColumn() {mDtEventCommodtiyInfo.Columns("code")}
 mViewCommodtiyInfo = mDtEventCommodtiyInfo.DefaultView
 mViewCommodtiyInfo.RowFilter = String.Format(mStrCommodity)
注意:
mDtEventCommodtiyInfo 是已取得的数据table
mViewCommodtiyInfo 是视图对象
mStrCommodity 是过滤条件,内容如下:code in ("AAAAA1", "AAAAA2", "ABCD4", "CCCC5", ......)条件字符串很长!测试情况如下,40000条数据过滤时使用12分钟左右。
现正在想起他的办法进行优化,请各位见贴者给我出些注意。谢谢了

解决方案 »

  1.   

    本来用in的过滤就很慢的,建议楼主用sql语句,直接获得想要的数据。
      

  2.   

    由于业务上的原因需要保留那些过滤前原有的数据,所以不能使用SQL再次访问数据库(这样也会影响效率)。对不起,我没有说清楚,谢谢。
      

  3.   

    在DataSet上可不可以用sql啊
    ???
      

  4.   

    那就代码组和一个过滤条件
    code ="AAAAA1" or  code ="AAAAA2" or ....
      

  5.   

    谢谢,  bobibobi(bbo)
    之前,这个办法我已经试过了,在SQL执行一段时间后会发生溢出错误,
    code ="AAAAA1" or  code ="AAAAA2" or ....像这样的条件有30000个左右,这是导致溢出错误的祸首。
      

  6.   

    测试或第一次调用DataView.RowFilter在窗体上显示数据会有所延迟,第二次就正常了。
    在那个程序上。不过记录只用几百条,
    http://blog.csdn.net/zhzuo/archive/2005/12/04/543278.aspx
      

  7.   

    不要用rowfilter,自己写过滤程序,可以用HASH表或者缓存过去结果的方式进行优化