none
crear un datarow dinamicamente RRS feed

  • Pregunta

  • Buenas, estoy agregando datos desde textbox a un grid, cuando agrego el primero se agrega perfectamente pero al ingresar un segundo le cae encima al anterior, necesito que me ayuden para ver como puedo hacer que se vayan agregando los items que yo quiero al gridview sin que le caiga encima al anterior, tengo el siguiente codigo
                 
    
                 DataTable dt = new DataTable();
                 DataRow Row1;
                 DataRow Row2;
                 
                 dt.Columns.Add(new DataColumn("Código repuesto", System.Type.GetType("System.String")));
                 dt.Columns.Add(new DataColumn("Tipo de Repuesto", System.Type.GetType("System.String")));
                 dt.Columns.Add(new DataColumn("Descripción", System.Type.GetType("System.String")));
                 dt.Columns.Add(new DataColumn("Proveedor", System.Type.GetType("System.String")));
                 dt.Columns.Add(new DataColumn("Cantidad", System.Type.GetType("System.String")));
    
                 Row1 = dt.NewRow();
                 Row1["Código repuesto"] = txt_codigo.Text;
                 Row1["Tipo de Repuesto"] = Convert.ToString(cbo_tiporepuesto.SelectedValue);
                 Row1["Descripción"] = txt_descripcion.Text;
                 Row1["Proveedor"] = Convert.ToString(cbo_proveedor.SelectedValue);
                 Row1["Cantidad"] = Convert.ToString(txt_cantidad.Text);
                 dt.Rows.Add(Row1);
    
    
                
    
    
                 dgv_lista_repuesto.DataSource = dt;
                 //dgv_lista_repuesto.DataSource = objinventarios.Carga_repuestos2().Tables[0];
                 dgv_lista_repuesto.Columns[0].HeaderText = "Código Repuesto";
                 dgv_lista_repuesto.Columns[1].HeaderText = "Tipo de Repuesto";
                 dgv_lista_repuesto.Columns[2].HeaderText = "Descripción";
                 dgv_lista_repuesto.Columns[3].HeaderText = "Proveedor";
                 dgv_lista_repuesto.Columns[4].HeaderText = "Cantidad";
    
    
                 dgv_lista_repuesto.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                 dgv_lista_repuesto.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                 dgv_lista_repuesto.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                 dgv_lista_repuesto.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                 dgv_lista_repuesto.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;


    David Vega

    lunes, 5 de marzo de 2012 2:56

Respuestas

  • hola es que eso funciona la primera vez luego debes tomar el dataset que asignas al control grid

    DataTable dt = null;
    
    if(dgv_lista_repuesto.DataSource == null)
    {
    	dt= new DataTable();
    	dt.Columns.Add(new DataColumn("Código repuesto", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Tipo de Repuesto", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Descripción", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Proveedor", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Cantidad", System.Type.GetType("System.String")));
    }
    else
    {
    	dt= dgv_lista_repuesto.DataSource as DataTable;
    }
    
    
    DataRow Row1 = dt.NewRow();
    Row1["Código repuesto"] = txt_codigo.Text;
    Row1["Tipo de Repuesto"] = Convert.ToString(cbo_tiporepuesto.SelectedValue);
    Row1["Descripción"] = txt_descripcion.Text;
    Row1["Proveedor"] = Convert.ToString(cbo_proveedor.SelectedValue);
    Row1["Cantidad"] = Convert.ToString(txt_cantidad.Text);
    dt.Rows.Add(Row1);
    
    dgv_lista_repuesto.DataSource = dt;

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta don2690 lunes, 5 de marzo de 2012 3:15
    lunes, 5 de marzo de 2012 3:05

Todas las respuestas

  • hola es que eso funciona la primera vez luego debes tomar el dataset que asignas al control grid

    DataTable dt = null;
    
    if(dgv_lista_repuesto.DataSource == null)
    {
    	dt= new DataTable();
    	dt.Columns.Add(new DataColumn("Código repuesto", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Tipo de Repuesto", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Descripción", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Proveedor", System.Type.GetType("System.String")));
    	dt.Columns.Add(new DataColumn("Cantidad", System.Type.GetType("System.String")));
    }
    else
    {
    	dt= dgv_lista_repuesto.DataSource as DataTable;
    }
    
    
    DataRow Row1 = dt.NewRow();
    Row1["Código repuesto"] = txt_codigo.Text;
    Row1["Tipo de Repuesto"] = Convert.ToString(cbo_tiporepuesto.SelectedValue);
    Row1["Descripción"] = txt_descripcion.Text;
    Row1["Proveedor"] = Convert.ToString(cbo_proveedor.SelectedValue);
    Row1["Cantidad"] = Convert.ToString(txt_cantidad.Text);
    dt.Rows.Add(Row1);
    
    dgv_lista_repuesto.DataSource = dt;

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta don2690 lunes, 5 de marzo de 2012 3:15
    lunes, 5 de marzo de 2012 3:05
  • muchas gracias me sirvio perfectamente


    David Vega

    lunes, 5 de marzo de 2012 3:16