如题!原因呢?

解决方案 »

  1.   

    自己写个for循环,输出一下timespan不就得了
      

  2.   

    如果查询是在数据表的主键列上进行的,使用DataTable.Rows.Find代替DataTable.Select。http://www.yesky.com/dev/msdn/28/2192028_1.shtml
      

  3.   

    Select的效率应该更高吧,DataTable是一个内存表,可以假象为真实表,理论上应该有真实数据库中的一切,则应有索引之类的。
    Rows.Find应该是逐行去找的吧,但可能也会进行索引,这样考虑,就应该是一样的了。
    呵呵,想当然了关注
      

  4.   

    id是主键的话,DataTable.Rows.Find(id)的效率应该高点,参考http://www.chinaaspx.com/comm/technet/Showtopic.aspx?Forum_ID=5&Id=45089
      

  5.   

    通过DataTable.Rows.Find(id)应该比较高,
    但无论怎么样,DataTable.Rows.Find(id)不会比DataTable.Select()方法效率低。
    楼主可以通过Reflector之类的软件反射看一下代码。
      

  6.   

    DataTable.Select() 得到的是一个 DataRowCollection  因为id是主键所以结果是DataTable.Select()[0]DataTable.Rows.Find(id) 得到单个的DataRow 
    Reflector 反射 .net代码比较复杂。
      

  7.   

    我也认为DataTable.Rows.Find(id)比DataTable.Select()效率高。
      

  8.   

    Find 当然快,因为DataRowCollection 的内部是用HashTable实现的
    它的查找时间是固定的。
    而Select需要逐条匹配