none
Pasar un registro de un dataGridview a una tabla RRS feed

  • Pregunta

  • Hola buenos dias ..........

    tengo una duda no se si pueda pasar una registro de un datagridview a una tabla  lo que he intnetdao hacer es esto

    DataGridViewRow

     

    row = dataGridView1.Rows[ dataGridView1.CurrentCell.RowIndex];

    tabla.Columns.Add(

    new DataColumn("clave",Convert.ToString(row.Cells["clave"].Value)));

    pero me marca un error

    La mejor coincidencia de método sobrecargado para 'declaración' tiene algunos argumentos no válidos

     

    espero alguien me pueda ayudar a solucionar este problema

    de ante mano agradezco cualquier ayuda que me puedan brindar 

    miércoles, 19 de mayo de 2010 14:55

Respuestas

  • gracias leandro por tu respuesta  no uso dataset porque no es una tabla de la base de datos es solo una tabla que creo y lleno con un registro seleccionado de un datagidview.

    dejo la solucion

    DataTable

     

    tabla = new DataTable();

     

    DataRow row = tabla.NewRow();

     

    DataGridViewRow row1 = dataGridView1.Rows[ dataGridView1.CurrentCell.RowIndex];

    tabla.Columns.Add(

    "clave", typeof(string));

    row[

    "clave"] = Convert.ToString(row1.Cells["clave"].Value);

    • Marcado como respuesta ana gaby jueves, 20 de mayo de 2010 16:36
    jueves, 20 de mayo de 2010 16:35

Todas las respuestas

  • Hola si tu datagridview lo tienes enlazado al datatable en el que estás trabajando, podrias llamar al método update del adaptador y ya pasarias el dato a la tabla.

    si no es asi,

     

    Podrias hacer algo asi:

    DataRow row=tuDataTable.NewRow;

    row["campo1"]=tuDataGridView.Rows[tufila].Cells["campo1"].Value;

    /asi con todas las columnas...

    y luego agregarlo

    tuDataTable.Rows.Add(row);


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 19 de mayo de 2010 15:00
    Moderador
  • hola

    si lo ahces sin usar dataset podria ser algo como esto

    using (SqlConnection cnn == new SqlConnection("<connection string>"))
    {
        cnn.Open();

        string sql = "INSERT INTO <tabla> (campo1, campo2) VALUES (@param1, @param2)";
        SqlCommand command = new SqlCommand(sql, cnn);

        DataGridViewRow row = DataGridview1.CurrentRow;

        command.Parameters.AddWithValue("@param1", Convert.ToString(row.Cells("nombrecolumna1")));
        command.Parameters.AddWithValue("@param2", Convert.ToInt32(row.Cells("nombrecolumna2")));

        command.ExecuteNonQuery();

    }

    si es don dataset podrias ser

    DataGridViewRow row = DataGridview1.CurrentRow;

    //con esto creas un nuevo datatable de tu dataset tipado
    DataSetTabla.Tabla table = new DataSetTabla.Tabla();

    DataRow row = tabla.NewRow();
    row["campo1"] = Convert.ToString(row.Cells("nombrecolumna1"));
    row["campo2"] = Convert.ToString(row.Cells("nombrecolumna2"));

    table.Rows.Add(row);

    TableAdapterTabla.Update(table);

    Nota, imagino que estas usando dataset tipados

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 19 de mayo de 2010 15:09
  • Hola jtorrecilla gracias por responder

    no estan enlazados y de la forma que me dices ya lo intente pero me marca una ecxeption  en esta linea

    row[

    "clave"] =row.Rows[0].Cells["CLAVE"].Value;

    me dice que la columna clave no pertenece a la tabla

    creo que no me explique bien y talvez por eso es el error quiero mandar a la tabla una fila peroq ue sea la que esta seleccionada en el datagridview.

    miércoles, 19 de mayo de 2010 15:46
  • gracias leandro por tu respuesta  no uso dataset porque no es una tabla de la base de datos es solo una tabla que creo y lleno con un registro seleccionado de un datagidview.

    dejo la solucion

    DataTable

     

    tabla = new DataTable();

     

    DataRow row = tabla.NewRow();

     

    DataGridViewRow row1 = dataGridView1.Rows[ dataGridView1.CurrentCell.RowIndex];

    tabla.Columns.Add(

    "clave", typeof(string));

    row[

    "clave"] = Convert.ToString(row1.Cells["clave"].Value);

    • Marcado como respuesta ana gaby jueves, 20 de mayo de 2010 16:36
    jueves, 20 de mayo de 2010 16:35