Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: piwi en 29 Julio 2010, 17:09 pm



Título: Filas seleccionadas DataGridView
Publicado por: piwi en 29 Julio 2010, 17:09 pm
Hola.

Estoy intentando recuperar los valores de las filas seleccionadas en un datagridview  con opcion de multiselect.

Estoy utilizando el siguiente código

Código:
Dim PuestosAcumulados, Contador As Integer
        Dim FilasSeleccionadas As Integer

        PuestosAcumulados = 0

        FilasSeleccionadas = DataGridView1.GetCellCount(DataGridViewElementStates.Selected)

        If FilasSeleccionadas > 0 Then

            For Contador = 0 To FilasSeleccionadas - 1
                PuestosAcumulados = PuestosAcumulados + CInt(DataGridView1(2, DataGridView1.SelectedCells(Contador).RowIndex).Value)
            Next Contador
        End If

El problema con el que me encuentro que recorre cada columna seleccionada por numero de campos que tenga por lo que si tengo en el datagridview 6 columnas y selecciono solamente una fila, el getcellcount me dará un 6.
Como puedo hacer para que solamente pase una vez por la fila como si fuera un getrowcolumns.
Al principio para sumar el valor no tenía problemas porque lo dividía por el nº de campos de registro pero ahora necesito hacer un insert en otra tabla por cada registro seleccionado con los valores de este y claro, si tengo 6 campos, intenta hacer el insert 6 veces y yo solamente quiero que me lo haga una vez.


Título: Re: Filas seleccionadas DataGridView
Publicado por: piwi en 29 Julio 2010, 17:20 pm
Me respondo a mi mismo por si alguien también lo buscaba.

Código:
   Dim PuestosAcumulados, Contador As Integer

        PuestosAcumulados = 0

        For Contador = 0 To DataGridView1.RowCount - 1
            'PuestosAcumulados = PuestosAcumulados + CInt(DataGridView1(2, DataGridView1.SelectedCells(Contador).RowIndex).Value)
            If DataGridView1.Rows(Contador).Selected Then
                PuestosAcumulados = CInt(PuestosAcumulados + DataGridView1(2, Contador).Value)
            End If
        Next Contador

        NUMPUESTOSTextBox.Text = (PuestosAcumulados).ToString


Título: Re: Filas seleccionadas DataGridView
Publicado por: [D4N93R] en 29 Julio 2010, 18:55 pm
Muy bien, que bueno que lo lograste, una pregunta, estás seguro de que el GetCellCount no te funcionó? voy a probarlo a ver que tal.

Otra cosa, cuando coloques el código entre las etiquetas ponle el lenguaje que estás usando [code=vbnet]tu código aquï[/code]


Título: Re: Filas seleccionadas DataGridView
Publicado por: piwi en 30 Julio 2010, 00:53 am
Muy bien, que bueno que lo lograste, una pregunta, estás seguro de que el GetCellCount no te funcionó? voy a probarlo a ver que tal.

Otra cosa, cuando coloques el código entre las etiquetas ponle el lenguaje que estás usando [code=vbnet]tu código aquï[/code]

El problema que tenía que tenia activado fullrowselect y por eso me lo hacía por todos los campos.