How do I get the selected row data from a data grid view using SelectedRows?

爷,独闯天下 提交于 2020-01-03 11:00:00

问题


I have a table that I am displaying in a data grid view control. The user selects a single row from the control and presses a button. I need to retrieve the cells from that row and store them as strings.

Exactly how do I get the data using the SelectedRow method? I've been working on this for several hours and I'm at the end of my rope. Here's an example of something I've tried:

DataGridViewCellCollection selRowData = dataGridView1.SelectedRows[0].Cells;

If I try to access selRowData[x], the return value does not contain my data.


回答1:


You're close - you need to reference each Cell through its index and return its Value property:

string firstCellValue = dataGridView1.SelectedRows[0].Cells[0].Value;
string secondCellValue = dataGridView1.SelectedRows[0].Cells[1].Value;

etc.




回答2:


If you want the data and the data is likely bound to an datasource, then might I suggest that you get the key from the selection, and then you can use that to access the data any way you like:

dataGridView.SelectedDataKey.Value;



回答3:


Try using the Item element of the dgv.

dgvFoo.Item(0, dgvFoo.CurrentRow.Index).Value

That would return the value of the first item. You could put that into a for loop to get them all.

Another option would be to use the SelectedRows collection on the object and iterate through each selected row (or just the one in your case).




回答4:


Well there is no datagridview Item property..@Jay Riggs solution is better...Following solution also works:

string firstCellValue = dataGridView1[0,dataGridView1.CurrentRow.Index].Value.ToString();
string secondCellValue = dataGridView1[0,dataGridView1.CurrentRow.Index].Value.ToString();

Here 0 is the first column and dataGridView1.CurrentRow.Index is the current Row from where to get value.




回答5:


Perhaps this is a more suitable solution use the cell values of the row clicked:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
  if (e.RowIndex > -1)
  {
    var val = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
  }
}


来源:https://stackoverflow.com/questions/3552497/how-do-i-get-the-selected-row-data-from-a-data-grid-view-using-selectedrows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!