.NET C# 取得datatable中某行的行数(索引数)
今天碰到了这个么个问题,
取得了一个数据表的数据保存在一个datatable表中,这个表为dt
我要取得这一个表中的某一行中有个字段为“ID”的值为“XX”行数。怎么办?
(实际上我是要取这个行(记录)的上一记录和下一记录,来展示如上一文章和下一文章的功能)
在datatable操作中有一个DataTable.Rows.IndexOf属性来取得行数,
本来以为这个看来是挺简单了,
起初我这样来实现
DataView dv=new DataView(dt);
dv.RowFilter="ID='XX'";
int m=dt.Rows.IndexOf(dv.ToTable().Rows[0]);
结果失败,返回的总是-1,
这让我很不理解,没办法,
后来起到了,DataTable中可以通过主键来取得某行,
后来就通过这样的方法来实现
dv.Sort = "sort desc,id desc";
DataTable dt = dv.ToTable();
DataColumn[] clos = new DataColumn[1];
clos[0] = dt.Columns["id"];
dt.PrimaryKey = clos;
int dtConut = dt.Rows.IndexOf(dt.Rows.Find(type2ID));
测试成功。