Foros del Web » Programando para Internet » ASPX (.net) »

Copiar en array datos de un datagrid

Estas en el tema de Copiar en array datos de un datagrid en el foro de ASPX (.net) en Foros del Web. Hola, muy buenas. Me gustaría obtener todos los datos que tengo cargados en un datagrid y pasarlos a una array, por ejemplo. Podría hacerlo copiándo ...
  #1 (permalink)  
Antiguo 10/10/2005, 05:28
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Copiar en array datos de un datagrid

Hola, muy buenas. Me gustaría obtener todos los datos que tengo cargados en un datagrid y pasarlos a una array, por ejemplo. Podría hacerlo copiándo fila a fila, pero ¿existe la posibilidad de copiarlos todos a la vez? He intentado con el siguiente método del datagrid:

Dim arrAltas As Array
Me.dgAltas.Items.CopyTo(arrAltas, 0)

pero me sale el error "Object reference not set to an instance of an object", aunque no sé si se refiere al vector o a la colección del datagrid.

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 11/10/2005, 04:44
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Quizás sea mejor replantear la pregunta.

Los datos del datagrid quiero insertarlos en una base de datos. La base de datos tiene los mismos campos que el Datagrid excepto un campo. Este campo es el resultado de cifrar con sha1 el campo DNI del datagrid. Es decir, el datagrid tiene los campos siguientes:

|Num|Nombre|Apellido1|Apellido2|DNI|

y la base de datos:

|Num|Nombre|Apellido1|Apellido2|DNI|Pass

Creo que la mejor opción sería recoger todos los datos del datagrid en un dataset y luego actualizar la base de datos con ese dataset ¿no? Veo una pega en el cifrado del campo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 11/10/2005, 11:13
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Ten en cuenta que el DataGrid es más un visor que un _contenedor_ de datos, me queda claro lo que quieres hacer, pero no el proceso que haces para conseguir tu objetivo, creo que estás un poco confundido...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 13/10/2005, 05:20
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Je je, sí, la verdad es que sí que me lío bastante en cuanto aparecen en escena vectores, matrices y colecciones. Bueno, el proceso que he seguido al final es insertar paso por paso cada fila del datagrid:

Código:
        Dim conSQL As New SqlConnection(ConfigurationSettings.AppSettings("strConSQL"))
        conSQL.Open()

        'ALTAS ##########################
        If Me.dgAltas.Items.Count > 0 Then
            Dim insCom As New SqlCommand
            insCom.CommandType = CommandType.Text
            insCom.Connection = conSQL
            Dim strIns As String

            For i As Integer = 0 To Me.dgAltas.Items.Count - 1
                strIns = "INSERT INTO acceso_socios" & _
                    " (numero,nombre,apellido1,apellido2,dni,pass)" & _
                    " VALUES (" & _
                    Me.dgAltas.Items(i).Cells(0).Text & "," & _
                    "'" & Me.dgAltas.Items(i).Cells(1).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(2).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(3).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(4).Text.Replace("'", "''") & "'," & _
                    "'" & cifraDNI(Me.dgAltas.Items(i).Cells(4).Text) & "')"

                insCom.CommandText = strIns
                Try
                    insCom.ExecuteNonQuery()
                Catch ex As Exception
                    Response.Write("Error en Socio" & Me.dgAltas.Items(i).Cells(0).Text & "<br>")
                End Try
            Next

        End If
Es un poco lento, pero no suele haber más de diez altas a la semana, por lo que no se ralentiza el proceso demasiado.

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #5 (permalink)  
Antiguo 22/04/2008, 15:14
Avatar de roggerprogrammer  
Fecha de Ingreso: abril-2008
Ubicación: Chiclayo - Peru
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
De acuerdo Re: Copiar en array datos de un datagrid

Cita:
Iniciado por Bravenap Ver Mensaje
Je je, sí, la verdad es que sí que me lío bastante en cuanto aparecen en escena vectores, matrices y colecciones. Bueno, el proceso que he seguido al final es insertar paso por paso cada fila del datagrid:

Código:
        Dim conSQL As New SqlConnection(ConfigurationSettings.AppSettings("strConSQL"))
        conSQL.Open()

        'ALTAS ##########################
        If Me.dgAltas.Items.Count > 0 Then
            Dim insCom As New SqlCommand
            insCom.CommandType = CommandType.Text
            insCom.Connection = conSQL
            Dim strIns As String

            For i As Integer = 0 To Me.dgAltas.Items.Count - 1
                strIns = "INSERT INTO acceso_socios" & _
                    " (numero,nombre,apellido1,apellido2,dni,pass)" & _
                    " VALUES (" & _
                    Me.dgAltas.Items(i).Cells(0).Text & "," & _
                    "'" & Me.dgAltas.Items(i).Cells(1).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(2).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(3).Text.Replace("'", "''") & "'," & _
                    "'" & Me.dgAltas.Items(i).Cells(4).Text.Replace("'", "''") & "'," & _
                    "'" & cifraDNI(Me.dgAltas.Items(i).Cells(4).Text) & "')"

                insCom.CommandText = strIns
                Try
                    insCom.ExecuteNonQuery()
                Catch ex As Exception
                    Response.Write("Error en Socio" & Me.dgAltas.Items(i).Cells(0).Text & "<br>")
                End Try
            Next

        End If
Es un poco lento, pero no suele haber más de diez altas a la semana, por lo que no se ralentiza el proceso demasiado.

Gracias y un saludo.





Hola como estas muy bueno tu aporte sabes, yo tenia el mismo problema pense que lo habia solucionado asi no se si alguien me pueda ayudar, explico lo que pasa es que quiero guardar los detalles de una factura, entonces yo tengo un datagrid con 'Codigo' 'Producto' 'Descripcion' 'Cantidad' 'Punit' 'Total' pero que pasa este array que mencionas guarda los datos, en campos que son String pero los campos que yo tengo en el datagrid quiero guardarlos en int por ejemplo el codigo del producto la cantidad y el total cosa que no pasa queria saber si alguien sabe como, y disculpen la ignorancia. grax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:19.