C#从DataGridView获取行

C#从DataGridView获取行,c#,winforms,datagridview,C#,Winforms,Datagridview,我需要在foreach函数中获取DataGridView中的所有行。我该怎么做 例如,foreach()用于每一行,因此对于每一行,我可以运行使用第一列和第二列数据的代码 这是c语言# 谢谢, Christian请记住,将DataGridView绑定到数据源,然后使用该数据源执行任何与数据相关的操作,这始终是一个很好的做法。这可以避免与datagrid交互。我认为访问此数据的最佳方式是通过数据源: dataGridView.DataSource = someData; someData.prop

我需要在foreach函数中获取DataGridView中的所有行。我该怎么做

例如,foreach()用于每一行,因此对于每一行,我可以运行使用第一列和第二列数据的代码

这是c语言#

谢谢,
Christian

请记住,将DataGridView绑定到数据源,然后使用该数据源执行任何与数据相关的操作,这始终是一个很好的做法。这可以避免与datagrid交互。

我认为访问此数据的最佳方式是通过
数据源

dataGridView.DataSource = someData;
someData.property;
或者,如果用户在页面上输入数据,您可以通过
FindControl
方法访问:

name = ((TextBox)dataGridView.Rows[e.RowIndex].FindControl("name")).Text;
在这种情况下,如果您为特定行引发了一个事件,它将返回
EventArgs e
,并带有特定的
RowIndex
。然后,您可以通过列中的
ControlID
访问列值,例如
中的
。FindControl(“名称”)


需要记住的重要一点是,您必须将该对象强制转换回它应该来自
.FindControl()
方法的类型。

我知道这一点。我怎样才能从这里得到Colum 1和Colum 2的数据?字符串。访问网格绑定到的数据源要好得多。它没有绑定到数据源。它应该由用户填充。我将datagrid视图放在windows窗体中,让用户创建值,然后从中获取数据。这几乎不是一个好主意。网格是表示数据的控件,而不是存储数据的容器。这是可以做到的,但这并不意味着这是个好主意。
name = ((TextBox)dataGridView.Rows[e.RowIndex].FindControl("name")).Text;