|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。明天看到有伴侣在群中问,要怎样从DataTable选择出不反复的行。由于在SQL中有distinct关头字,以是良多伴侣就天然想到了用dt.Select("distinct字段")来处置,了局失利了,由于dt.Select是不撑持distinct关头字的。
又有伴侣提到,轮回一切行,对照每行与上一列值的值,比方:
DataRow[]drs=newDataRow[dt.Rows.Count];
for(inti=1;i<dt.Rows.Count;i++)
{
if(dt.Rows["关头列"].ToString()==dt.Rows[i-1]["关头列"].ToString())
{
drs[i-1]=dt.Rows;
}
}
drs中存储的就是我们想要的一切不反复行的数据了。
该办法固然可行,但显的庞大了。这里向人人解说一个最复杂的办法,就是使用DataView的ToTable办法来主动过滤一切反复行的数据,代码以下:
DataTabledt="您的来历dt";
DataTabledt_new=dt.DefaultView.ToTable(true,"关头列1","关头列2");
dt_new中存储的就是我们想要的一切不反复行的数据了。
解说:
1.DefaultView的前往范例是DataView,而DataView的界说就是:
暗示用于排序、选择、搜刮、编纂和导航的System.Data.DataTable的可绑定命据的自界说视图。
以是我们在要用到对DataTable举行排序、选择、搜刮、编纂和导航操纵时,就要想到用DataView.
2.publicDataTableToTable(booldistinct,paramsstring[]columnNames)办法:
从参数名我们就能够猜出它的意义了。
distinct:暗示前往的Data.DataTable是不是包括一切列都具有分歧值的行,默许为false。
columnNames:暗示要包含在前往的System.Data.DataTable中的列名的列表。假如distinct为true,则它会依据columnNames指定的列名举行选择过滤。
该办法另有别的的重载办法,人人能够自行查询。前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。 |
|