Justin
Justin

Reputation: 219

How to know the row index from DataTable object

I'm getting a value from DataGridView, and based on particular I want to know its row index using DataTable object. For instance, if I get the value "this", then I want to know its index in table. May I know how should I done

Upvotes: 12

Views: 114678

Answers (3)

Sergio López
Sergio López

Reputation: 1

using System.Data;

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

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

Upvotes: -1

chevhfghfghfgh
chevhfghfghfgh

Reputation: 137

DataRow[] result = tableName.Select("Group >= 'Commentary - Yes'");
  if (result.Length > 0)
     {
          int SelectedIndex =tableName.Rows.IndexOf(result[0]);
     }

Upvotes: 6

decyclone
decyclone

Reputation: 30830

If that value "this" belongs to a Non-Primary-Key Column in DataTable, you may get more than one rows returned.

To find a value in DataTable, use DataTable's Select() method:

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

Once you get the row(s), you can find its index using DataTable.Rows.IndexOf() method.

I suggest you find a better way to locate your row from DataTable. May be look for row using a value that belongs to a Primary Key Column.

It would be great to know why you want to do this. Someone could come up with a better solution.

Upvotes: 25

Related Questions