none
Copiar filas de un dgv a otro RRS feed

  • Pregunta

  • Necesito traspasar filas desde un dgv a otro dgv localizado en otro form,el problema es que antes lo hacis sin problemas pero no se que modificacion se realizo o propiedad se cambio que ahora me entrega un mensaje que dice :


    "Error en la operación porque el programa no pudo realizar o anular un cambio de valor de celda"

    El codigo que estoy utilizando es el siguiente:

            DGV_prueba.Show()
            For Each row As DataGridViewRow In DataEvaluaciones.Rows
    
                DGV_prueba.DataGridView1.Rows.Add(row.Cells("protocolo").Value, _
                row.Cells("voz").Value, _
                row.Cells("escucha").Value, _
                row.Cells("seguridad").Value, _
                row.Cells("conocimiento").Value, _
                row.Cells("manejo").Value, _
                row.Cells("confirma").Value, _
                row.Cells("Id_Grabacion").Value, _
                row.Cells("observacion").Value, _
                row.Cells("llamada").Value)
    
    
    
            Next
    Porfa vor si me pueden ayudar! de ante mano muchas gracias.


    lunes, 21 de diciembre de 2009 1:19

Respuestas

  • hola

    podrias aplicar una logica similar a la explciada en este link
    DataGrid Copy Helper Component

    en donde hace uso de la funcionalidad del clipboard para copiar y pegar los datos

    o como explica este otro link
    Copy Rows from DataGridView

    como veras

    private void button1_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
        {
            object[] rowData = new object[row.Cells.Count];
            for (int i = 0; i < rowData.Length; ++i)
            {
                rowData[i] = row.Cells[i].Value;
            }
            this.dataGridView2.Rows.Add(rowData);
        }
    }

    recorre cada row seleccionadam y de esta cada columna para armar un array de object que suar luego para insertar en el otra grilla

    para convertir el ejemplo a vb.net usa estas tools
    Convert C# to VB.NET
    Code Converter

     



    algo que pudo haber pasado es que estan usando una datagridview que ha sido bindeado a datos, usando la propiedad DataSource
    si ese es el caso lo que deberias hacer es crear un nuevo registro en el DataTable o en el tipo de dato que uesen para bindear

    algo como ser

    Dim dt As DataTable = DataGridView1.DataSource

    Dim row As DataRow = dt.NewRow;

    row("protocolo") = CStr(row.Cells("protocolo").Value)
    row("voz") = CStr(row.Cells("voz").Value)
    .
    .
    ' y asi con todos los campos

    dt.Rows.Add(row)

    DataGridView1.DataSource = dt


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 21 de diciembre de 2009 4:36