如何使用 Windows 窗体中的 DataGridView 获取选定行中的所有单元格数据?
How to get all cells data in a selected row using DataGridView in WindowsForms?
我有一个 DataGridView 显示我的数据库中的一些数据,当我双击 datagridview 中的任何行时,我会在新的 window.
中获取它的内容
我有这个:
private void ListaProductos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var abrirNuevoProducto = new modificar_producto(content ); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
}
这对我有用,但是......像这样一个一个地做这个会很累很乏味:
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var content2 = ListaProductos.Rows[e.RowIndex].Cells["Age"].Value.ToString();
var conten3 = ListaProductos.Rows[e.RowIndex].Cells["Surname"].Value.ToString();
var content4 = ListaProductos.Rows[e.RowIndex].Cells["Address"].Value.ToString();
... and 150 more columns
var abrirNuevoProducto = new modificar_producto(content, content2, content3, content4 ... and so on); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
我会使用列表来执行此操作,但是...,我想知道是否有一种简单的方法可以执行此操作,因为我正在尝试的方法非常疲倦和糟糕。或者我应该改用列表吗?
我需要将数据传递给另一个表单进行修改操作
如果您已经为此table定义了class,您可以使用如下代码
var products = new List<Products>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (Products)selectedRow.DataBoundItem;
products.Add(prduct);
}
或者如果您没有 class 定义,您可以使用动态关键字
var products = new List<dynamic>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (dynamic)selectedRow.DataBoundItem;
products.Add(prduct);
}
我有一个 DataGridView 显示我的数据库中的一些数据,当我双击 datagridview 中的任何行时,我会在新的 window.
中获取它的内容我有这个:
private void ListaProductos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var abrirNuevoProducto = new modificar_producto(content ); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
}
这对我有用,但是......像这样一个一个地做这个会很累很乏味:
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var content2 = ListaProductos.Rows[e.RowIndex].Cells["Age"].Value.ToString();
var conten3 = ListaProductos.Rows[e.RowIndex].Cells["Surname"].Value.ToString();
var content4 = ListaProductos.Rows[e.RowIndex].Cells["Address"].Value.ToString();
... and 150 more columns
var abrirNuevoProducto = new modificar_producto(content, content2, content3, content4 ... and so on); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
我会使用列表来执行此操作,但是...,我想知道是否有一种简单的方法可以执行此操作,因为我正在尝试的方法非常疲倦和糟糕。或者我应该改用列表吗?
我需要将数据传递给另一个表单进行修改操作
如果您已经为此table定义了class,您可以使用如下代码
var products = new List<Products>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (Products)selectedRow.DataBoundItem;
products.Add(prduct);
}
或者如果您没有 class 定义,您可以使用动态关键字
var products = new List<dynamic>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (dynamic)selectedRow.DataBoundItem;
products.Add(prduct);
}