如何从 DataTable 对象中知道行索引

Posted

技术标签:

【中文标题】如何从 DataTable 对象中知道行索引【英文标题】:How to know the row index from DataTable object 【发布时间】:2011-05-30 08:38:33 【问题描述】:

我从 DataGridView 获取一个值,并且基于特定我想知道它使用 DataTable 对象的行索引。例如,如果我得到值“this”,那么我想知道它在表中的索引。请问我应该怎么做

【问题讨论】:

【参考方案1】:

如果该值“this”属于DataTable 中的Non-Primary-Key Column,则可能会返回多行。

要在DataTable 中查找值,请使用DataTableSelect() 方法:

DataRow[] rows = dt.Select("Column1 = 'this'");

获得行后,您可以使用DataTable.Rows.IndexOf() 方法找到其索引。

我建议您从DataTable 找到更好的方法来定位您的行。可能会使用属于 Primary Key Column 的值来查找行。

很高兴知道您为什么要这样做。有人可以提出更好的解决方案。

【讨论】:

如果我使用 int nIndex = DataSet.DataTable[0].Rows.Indexof() 它会给我错误信息。 @RushabhShah:在IndexOf() 中传递一个DataRow 对象作为参数。 问题是如何在 FIRST PLACE 中获得当前的 DataRow?请展开【参考方案2】:
DataRow[] result = tableName.Select("Group >= 'Commentary - Yes'");
  if (result.Length > 0)
     
          int SelectedIndex =tableName.Rows.IndexOf(result[0]);
     

【讨论】:

【参考方案3】:
using System.Data;

DataRowView row1 = (DataRowView)dataGridView1.CurrentRow.DataBoundItem;

int idx11 = row1.Row.Table.Rows.IndexOf(row1.Row);

【讨论】:

虽然此代码可能会回答作者的问题,但请考虑提供解​​释,因为代码只是一个示例,SDK/API 可能会随着时间而改变。

以上是关于如何从 DataTable 对象中知道行索引的主要内容,如果未能解决你的问题,请参考以下文章

使用行、列索引从矩阵中索引值

c#从dataTable中取出行,不知道是第几行,只知道行中数据!

如何从 UITableView 获取行索引,其中数组列表由追加到类

在ADO.NET 中,为访问DataTable 对象从数据源提取的数据行。可使用DataTable 对象的啥属性。

c#中datatable如何去除重复数据

Laravel Yajra DataTable:如何在对其他列进行排序时阻止索引列(具有行序列号)发生变化