http://community.csdn.net/Expert/topic/5492/5492712.xml?temp=.5467951
我是用
DataView dv = new DataView(dt);
dv.Sort = "cloumn1 desc";
for (Int32 i = dv.Count - 1; i >= 1; i--)
{
if (dv[i].Row[1].ToString() == dv[i - 1].Row[1].ToString())
{
dv.Delete(i);
}
}虽然这样可以得到那些我要的行
但是dv.Table就不能得到原来的行
这里是因为dv.Delete(i);
已经把行删除了所以我想问如何不用我上面的写法得到一个DataView而且不改变原来的
DataTable数据PS:这里不要Copy 多出一个DataTable
要是这个DataTable里面操作实现我上面要的
我要取出
1 A A 1 2 6
2 B B 2 1 3谢谢
我是用
DataView dv = new DataView(dt);
dv.Sort = "cloumn1 desc";
for (Int32 i = dv.Count - 1; i >= 1; i--)
{
if (dv[i].Row[1].ToString() == dv[i - 1].Row[1].ToString())
{
dv.Delete(i);
}
}虽然这样可以得到那些我要的行
但是dv.Table就不能得到原来的行
这里是因为dv.Delete(i);
已经把行删除了所以我想问如何不用我上面的写法得到一个DataView而且不改变原来的
DataTable数据PS:这里不要Copy 多出一个DataTable
要是这个DataTable里面操作实现我上面要的
我要取出
1 A A 1 2 6
2 B B 2 1 3谢谢
以下没试过,不知道可不可以, 主要是filter那里,
is null 忘记了可不可以, 不可以就找其他办法, 比如说默认值.. 实在不行加个循环初始值..DataTable dt= GetStructAndData(); // 建立DataTabledt.Columns.Add("delete", typeof(bool));DataView dv = new DataView(dt);
dv.Sort = "cloumn1 desc";
dv.Filter = "delete is null or delete = 0"
for (Int32 i = dv.Count - 1; i >= 1; i--)
{
if (dv[i].Row[1].ToString() == dv[i - 1].Row[1].ToString())
{
dv[i]["delete"] = false;
}
}