Хм, можете ли вы указать, как и когда вы говорите о получении этого значения?
Вы можете сделать это:
int index = dt.Rows.IndexOf(row);
Но я не уверен, какой смысл в этом, если у вас уже есть указанная строка, почему вы не можете просто получить ПК через row[columnName]
?
Но это более ресурсоемкий процесс, чем просто цикл с помощью цикла for.
Вам нужно это до или после привязки к dataGridView? Если вам нужно получить значение из строки dataGridView, которое отличается.
Для редактирования:
Вы можете получить выбранную строку следующим образом:
if (yourDataViewGrid.SelectedRows.Count == 1)
{
Int pk = yourDataViewGrid.Rows[yourDataViewGrid.SelectedRows[0].Index].Cells["PK"].Value.ToString();
}
Если вы делаете это каким-либо другим способом, таким как использование флажка для выбора строки, вы должны сделать это:
foreach (DataGridViewRow row in YourDataGridView.Rows)
{
if ((Boolean)((DataGridViewCheckBoxCell)row.Cells["CheckBoxName"]).FormattedValue)
{
Int pk = rows.Cells["PK"].Value.ToString();
}
}