前几天在解决问题时要用到DataRow在DataTable中的行号。在网上查了很多的资料,也问了很多的朋友,都没能提供一个简单有效的方式。
今天在查看DataRow的属性时,突然发现DataRow的IndexOf()方法。呵呵,这不就是我想要的获取DataRow的索引吗。 马上测试,果然,它能够正确的返回指定行在DataTable中的索引号,将它返回的值+1,就是我想要的行号了。
IndexOf()方法说明:获取指定 System.Data.DataRow 对象的索引
示例如下:
private int FindRowIndex(DataRow dr)
{
return dr.Table.Rows.IndexOf(dr);
}
附上网上朋友的思路:
设置好DataTable的主键,然后用for(int i=0;i<DataTable.Rows.Count;i++)来循环DataTable中的每一行,逐行判断该行是否是我们查找到的行,如果是,则返回i
示例如下:
private int FindRowIndex(DataRow dr)
{
for(int i=0;i<DataTable.Rows.Count;i++)
{
if(DataTable.Rows[i]["主键列"].ToString()=="我们要查找的值")
{
return i;
}
}
return 0;
}
当然,该方法最终也是能获得我们想要的行号的,只是略显复杂了.Rg?