Visual C#中灵活使用DataView

那一夜淺傷

那一夜淺傷

2016-02-19 15:54

图老师小编精心整理的Visual C#中灵活使用DataView希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

  可能大家都知道dataview这个名词的概念,但也许不是很多人可以说清楚在.net架构中它的应用范围和程度。比如:究竟datagrid和repeater这些控件是如何和数据关联起来的?很多人会告诉我是通过dataset。这显然是正确的,但究竟最根本最直接的是通过什么联系起来的呢?

  答案就是dataview。其实下面的语句:

DatagridTC.DataSource = dtRst;DatagridTC.DataBind();

  在工作的时候,它等效于:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

DatagridTC.DataSource = ds.Tables[0].DefaultView;DatagridTC.DataBind();

  dataset都是通过数据视图将数据呈现在控件上面的。那如何才能做到物尽其用呢?如果通过灵活地使用dataview让我们的程序更简洁,性能更好呢?下面通过一个例子来说明:一段程序想实现将dataset已有的一个datatable重新排序。

  某个写法是:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  

dt = ds.Tables[0].Copy();        dt.Clear();        int intNewID = 0;        for(int intI = 0;intI  ds.Tables[0].Rows.Count;intI++)        {          dr = dt.NewRow();          dr["DateType"] = ds.Tables[0].Rows[intI - 1 + 1]["DateType"].ToString();          dr["TCOrder"] = ds.Tables[0].Rows[intI - 1 + 1]["TCOrder"].ToString();          dr["TimeClass_ID"] = intNewID;          dr["TimeClass_Name"] = ds.Tables[0].Rows[intI - 1 + 1]["TimeClass_Name"].ToString();          dr["Chn_NameLocal"] = ds.Tables[0].Rows[intI - 1 + 1]["Chn_NameLocal"].ToString();          dr["User_Name"] = ds.Tables[0].Rows[intI - 1 + 1]["User_Name"].ToString();          dr["User_ID"] = ds.Tables[0].Rows[intI - 1 + 1]["User_ID"].ToString();          dt.Rows.Add(dr);          dt.AcceptChanges();          intNewID++;        }        dtRst = dt.Copy();        dtRst.Clear();        FoundRow = dt.Select("1 = 1", "TimeClass_Name, DateType, TCOrder");        for(int intI = 0;intI  FoundRow.Length;intI++)        {          dr = dtRst.NewRow();          dr["DateType"] = FoundRow[intI]["DateType"].ToString();          dr["TCOrder"] = FoundRow[intI]["TCOrder"].ToString();          dr["TimeClass_ID"] = FoundRow[intI]["TimeClass_ID"].ToString();          dr["TimeClass_Name"] = FoundRow[intI]["TimeClass_Name"].ToString();          dr["Chn_NameLocal"] = FoundRow[intI]["Chn_NameLocal"].ToString();          dr["User_Name"] = FoundRow[intI]["User_Name"].ToString();          dr["User_ID"] = FoundRow[intI]["User_ID"].ToString();          dtRst.Rows.Add(dr);          dtRst.AcceptChanges();        }        DatagridTC.DataSource = dtRst;        DatagridTC.DataBind();  另外一个写法是:DataView dv = ds.Tables[0].DefaultView;        dv.Sort = "TimeClass_Name, DateType, TCOrder";        DatagridTC.DataSource = dv;        DatagridTC.DataBind();

  显然方法二从代码上就简洁多了,更重要的是它不要再新创建dataset等,减少了内存和CPU的消耗。

  因此大家在遇到需要排序或者过滤数据的时候,要多想想可否使用dataview来实现了。

展开更多 50%)
分享

猜你喜欢

Visual C#中灵活使用DataView

编程语言 网络编程
Visual C#中灵活使用DataView

Visual C#中使用线程

编程语言 网络编程
Visual C#中使用线程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Visual C#创建和使用ActiveX组件

编程语言 网络编程
Visual C#创建和使用ActiveX组件

Visual C#使用DirectX实现视频播放

编程语言 网络编程
Visual C#使用DirectX实现视频播放

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Visual C#中调用Windows服务初探

编程语言 网络编程
Visual C#中调用Windows服务初探

在Visual C#程序中使用系统热键

编程语言 网络编程
在Visual C#程序中使用系统热键

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

通过并行机制处理鼠标和键盘

通过并行机制处理鼠标和键盘

数据结构算法集---C++语言实现

数据结构算法集---C++语言实现
下拉加载更多内容 ↓