Tengo un DataTable vinculado a un DataGridView. Tengo FullRowSelect habilitado en DGV. ¿Hay alguna manera de obtener la fila seleccionada como DataRow para que pueda obtener acceso fuertemente tipado a los valores de la fila seleccionada?¿Cómo obtengo el DataRow seleccionado en un DataGridView?
Respuesta
no estoy seguro de cómo hacerlo w/OA BindingSource, aquí es cómo hacerlo con una sola:
var drv = bindingSoure1.Current as DataRowView;
if (drv != null)
var row = drv.Row as MyRowType;
usted debería ser capaz de lanzar directamente a su fila seleccionada en la fila fuertemente tipado que estaba vinculado a DataGridView.
DataRowView currentDataRowView = (DataRowView)dgv1.CurrentRow.DataBoundItem
DataRow row = currentDataRowView.Row
Es posible por conseguir siguiente propiedad:
this.dataGridView.SelectedRows
Se obtiene una colección de tipo: DataGridViewSelectedRowCollection. Contiene elementos del tipo: DataGridViewRow.
A continuación, se puede obtener con los bounditem propio tipo en la siguiente forma:
DataGridViewSelectedRowCollection list = this.dataGridViewInventoryRecords.SelectedRows;
MyType selectedItem = (MyType)list[0].DataBoundItem; //[0] ---> first item
de probar esto.
DataRow row = gridView1.GetDataRow(gridView1.FocusedRowHandle);
if (row != null)
{
XtraMessageBox.Show(row["ID"].ToString());
}
else
return;
Si ha vinculado su DataGridView a una tabla o vista en una base de datos, puede obtener los datos como un objeto inflexible de tipos.
Esta respuesta es para un formulario de Windows que se conectó a una base de datos utilizando un DataSet en tiempo de diseño. El nombre de ejemplo es DataSet1, y el nombre de la tabla de ejemplo es Customer_Info.
// cast the data bound item to DataRowView so you have
// access to "Row", which
// has the actual data for the row in typed fields.
DataRowView drv = dgv.SelectedRows(0).DataBoundItem as DataRowView;
// run the code and look at the debugger value of drv.Row --
// the type will be shown
// which is the type created by the data binding, representing
// your table or view
//{YourDataSetName.YourTableOrViewType} tmpTableData = drv.Row as {YourDataSetName.YourTableOrViewType};
DataSet1.Customer_InfoRow tmpTableData = drv.Row as DataSet1.Customer_InfoRow;
Este enlace es la respuesta. Espero haber agregado claridad y un ejemplo más arriba. https://social.msdn.microsoft.com/Forums/windows/en-US/f252e395-58e6-4703-ba7b-0740efcbecf3/can-i-convert-the-selected-row-in-a-bound-datagridview-to-a-typed-datarow?forum=winformsdatacontrols
Este enlace muestra datos agregados mediante programación a la fuente de datos, sin extraer esos datos de una base de datos existente. Esto me llevó a una parte de la respuesta: https://msdn.microsoft.com/en-us/library/4wszzzc7(v=vs.110).aspx
No es posible tener un acceso fuertemente tipado a una vista de cuadrícula de datos si no se está utilizando un adaptador de tabla dentro del conjunto de datos.
Para tener acceso a las variables establecimiento inflexible cuando un DataGridView está unido a una tabla de datos a través de un BindingSource, hacen de la siguiente manera:
crear un nuevo proyecto.
Inserte un conjunto de datos denominado ds1 y una tabla de datos denominada dt99 con columnas llamadas DataColumn1 y DataColumn2, ambos tipos de cadena.
Añadir un DataGridView al formulario principal y enlazarlo a la dt99
Para que el dt99BindingSource conecta el DataGridView y la tabla de datos
Añadir y controlador de eventos para el cambio de selección de DataGridView, e inserte el siguiente fragmento de código
privada vacío dataGridView1_SelectionChanged (object sender, EventArgs e) {
ds1.dt99Row d= ((ds1.dt99Row)((DataRowView)dt99BindingSource.Current).Row);
Debug.WriteLine(d.DataColumn1 + " " + d.DataColumn2);
}
Ahora se han inflexible de tipos de variables (d.DataColumn1 yd .DataColumn2) para acceder a las celdas seleccionadas en el datagridview
Otra característica interesante es que una tabla de datos insertada dentro de un conjunto de datos proporciona un conjunto de clases públicas que ayuda mucho al manejar tablas de datos, por ejemplo
private void Form1_Load(Object sender, EventArgs e)
{
ds1.dt99.Adddt99Row("K", "B");
ds1.dt99.Adddt99Row("L", "D");
ds1.dt99.Adddt99Row("M", "F");
ds1.dt99.Adddt99Row("N", "H");
ds1.dt99Row dr = ds1.dt99.Newdt99Row();
dr.DataColumn1 = "X";
dr.DataColumn2 = "Y";
ds1.dt99.Adddt99Row(dr);
}
- 1. Cómo obtengo un DataRow de una fila en un DataGridView
- 2. ¿Cómo agregar un nuevo DataRow en DataTable?
- 3. DataGridView obtener el objeto seleccionado actual
- 4. ¿Cómo obtengo el elemento seleccionado por nombre y luego obtengo el valor seleccionado de un menú desplegable usando jQuery?
- 5. ¿Cómo obtengo el texto del nodo seleccionado actualmente en jstree?
- 6. ¿Cómo puedo convertir DataRowView en DataRow en C#
- 7. ¿Cómo obtengo la identificación del nodo seleccionado en jsTree?
- 8. Si estoy actualizando un DataRow, ¿bloqueo el DataTable completo o solo el DataRow?
- 9. Para DataGridView, ¿cómo obtengo los valores de cada fila?
- 10. los números de fila en un DataGridView
- 11. Índice de fila actualmente seleccionada en DataGridView
- 12. Convertir DataRowCollection en DataRow []
- 13. Cómo usar el método de extensión .ToDictionary() en DataRow
- 14. cómo obtengo las coordenadas del texto seleccionado en un html usando javascript document.getSelecttion()
- 15. DataGridViewComboBoxColumn establece el índice seleccionado
- 16. ¿Cómo obtengo los cuadros combinados DataGridView para mostrar su lista desplegable con un solo clic?
- 17. ¿Cómo puedo reordenar columnas en un DataGridView?
- 18. Organizar columnas en un DataGridView
- 19. Cómo actualizar el DataSource en WinForms DataGridView?
- 20. ¿Cómo implementar el desplazamiento automático en DataGridView?
- 21. Obtenga DefaultView DataRowView desde un DataRow
- 22. ¿Cómo construir una DataTable desde un DataGridView?
- 23. Eclipse Plugin Dev: ¿Cómo obtengo las rutas para el proyecto seleccionado actualmente?
- 24. ¿Por qué obtengo este error al eliminar una fila en el control DataGridView?
- 25. ¿Cómo obtengo el elemento seleccionado de una vista de cuadrícula con ImageAdapter? (Android)
- 26. ¿Cómo puedo convertir DataRow a string Array?
- 27. ¿Cómo obtengo el texto seleccionado de la ventana enfocada usando la API Win32 nativa?
- 28. ¿Cómo establecer el filtro seleccionado en QFileDialog?
- 29. ¿Cómo configuro el elemento seleccionado en un QListWidget?
- 30. ¿Cómo configuro el elemento seleccionado en un cuadro desplegable?
Hm ... Para mí, la fila seleccionada tiene «DataBoundItem» como nulo. –
@ Hi-Angel no está utilizando el enlace de datos, entonces. – stuartd