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

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

【问题讨论】:

    标签: c# .net winforms datatable


    【解决方案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 可能会随着时间而改变。
      猜你喜欢
      • 2017-03-26
      • 2023-01-19
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2016-07-21
      • 2012-10-07
      相关资源
      最近更新 更多