datatable 与dataview的区别

datatable 与dataview的区别

 
     一、DataTable 
   DataTable表示内存中数据的一个表,它完全是在内存中的一个独立存在,包含了这张表的全部信息。DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在;也可以是完全由程序自己通过代码来建立的一个表。 
   
    二、DataView 
   
  DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。DataView一般通过DataTable.DefaultView 属性来建立,再通过通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。   
  DataView是建立在DataTable基础上的,DataView.Table 属性可以得到此DataView对应的那个DataTable。DataView的行叫DataRowView,可以从DataRowView直接通过DataRowView.Row 属性得到此DataRowView对应的DataRow。 
------------1.可绑定 2.实现IEnumerable 3.行可转成object---------------------------------------

        DataTable dt = dt1;

        if ((dt == null) || ((dt.Rows).Count < 1)) return;
        IEnumerable  dv = (IEnumerable)((IListSource)dt).GetList();//将datatable转成dataview
        foreach (Object o in dv)
        {
            PropertyDescriptorCollection propDesColl = TypeDescriptor.GetProperties(o);
            foreach (PropertyDescriptor pd in propDesColl)
            {
                Type type = pd.PropertyType;
            }
        }

posted @ 2014-07-22 17:07  哼哼c#  阅读(4235)  评论(0编辑  收藏  举报