VisualC#中灵活使用DataView

VisualC#中灵活使用DataView,第1张

VisualC#中灵活使用DataView,第2张

可能大家都知道dataview的概念,但可能没多少人能说清它在中的应用范围和程度。net架构。例如,DataGrid和repeater控件与数据有什么关系?很多人会告诉我,是通过dataset。这显然是正确的,但是最根本最直接的联系是什么呢?

答案是数据视图。实际上,下面的说法:

DatagridTC。DataSource = dtRst
DatagridTC。DataBind();
在工作中,它相当于:

DatagridTC。数据源= ds。表格[0]。DefaultView
DatagridTC。DataBind();
数据集都通过数据视图在控件上呈现数据。如何才能做到物尽其用?如果灵活运用dataview可以让我们的程序更简洁,性能更好呢?下面是一个例子:一个程序想要对dataset中的一个现有数据表进行重新排序。

一种写法是:

dt = ds。表格[0]。copy();
dt。clear();

int int newid = 0;
for(int intI = 0;intI < ds。tables[0]. rows . count;intI++)
{
dr = dt。NewRow();
dr["DateType"] = ds。表格[0]。Rows[intI - 1 + 1]["DateType"]。ToString();
dr["TCOrder"] = ds。表格[0]。Rows[intI - 1 + 1]["TCOrder"]。ToString();
dr[" time class _ ID "]= int newid;
dr["TimeClass_Name"] = ds。表格[0]。rows[intI-1+1][" time class _ Name "]。ToString();
dr["Chn_NameLocal"] = ds。表格[0]。rows[intI-1+1][" Chn _ name local "]。ToString();
dr["用户名"] = ds。表格[0]。Rows[intI - 1 + 1]["用户名"]。ToString();
dr["User_ID"] = ds。表格[0]。Rows[intI - 1 + 1]["User_ID"]。ToString();
dt。rows . Add(dr);
dt。accept changes();
int newid++;
}

dtRst = dt。copy();
dtRst。clear();
FoundRow = dt。Select("1 = 1 "," TimeClass_Name,DateType,TC order ");
for(int intI = 0;intI < FoundRow。长度;intI++)
{
dr = dtRst。NewRow();
dr[" date type "]= FoundRow[intI][" date type "]。ToString();
dr[" TC order "]= FoundRow[intI][" TC order "]。ToString();
dr[" time class _ ID "]= FoundRow[intI][" time class _ ID "]。ToString();
dr[" time class _ Name "]= FoundRow[intI][" time class _ Name "]。ToString();
dr[" Chn _ name local "]= FoundRow[intI][" Chn _ name local "]。ToString();
dr["用户名"] = FoundRow[intI]["用户名"]。ToString();
dr[" User _ ID "]= FoundRow[intI][" User _ ID "]。ToString();
dtRst。rows . Add(dr);
dtRst。accept changes();
}

DatagridTC。DataSource = dtRst
DatagridTC。DataBind();
另一种写法是:

DataView dv = ds。表格[0]。DefaultView
dv。Sort = "TimeClass_Name,DateType,TC order ";
DatagridTC。DataSource = dv
DatagridTC。DataBind();
显然,第二种方法代码简洁得多,更重要的是,它不需要创建新的数据集,减少了内存和CPU的消耗。

所以,当你遇到需要对数据进行排序或者筛选的时候,你要多想想是否可以用dataview来实现。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualC#中灵活使用DataView

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情