Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/12/2009, 18:57
Avatar de Porlachucha
Porlachucha
 
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: trabajando con datagrid..ayuda

podrias mostrar el codigo para añadoir registros? es dificil saber en que te estas equivocando sin el codigo.
respecto de lo segundo. creo que añadir un nuevo form para editar los datos, es innecesario, ya que puedes en el mismo grid, poner controles que te permitan la edicion.
fijate en este codigo, crea un datagridview, con checkbox, textbox, y combobox. despues haciendo referencia al elemento seleccionado (en el datagrisview, tienes toda la informacion para actualizar la base de datos.

Código:
                 #region Despliega  centros
                            dttAgrupamientos = qbData.dttObtieneAgrupamientos(); // obtiene los datos desde la BD
                            if (dttAgrupamientos.Rows.Count > 0)
                            {
                                dgvAgrupamientos.DataSource = dttAgrupamientos;
                            }
                            else
                            {
                                dgvAgrupamientos.DataSource = null;
                                dgvAgrupamientos.DataBindings.Clear();
                                return true;
                            }

                            BindingSource bsAsociacion = new BindingSource();
                            bsAsociacion.DataSource = dttAgrupamientos;

                            dgvAgrupamientos.AutoGenerateColumns = false;
                            dgvAgrupamientos.DataSource = bsAsociacion;
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaCheckBox("Sel.", "Seleccionada"));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("codigo_empresa", "dgv_CodigoEmpresa", ""));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("codigo_centro", "dgv_CodigoCentro", ""));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("nombre_centro", "dgv_NombreCentro", "Centro"));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("codigo_zona_intesal", "dgv_CodigoZonaIntesal", ""));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.CreateComboBoxWithEnums(dttZonasIntesal, "CodIni", "CodEqu", "Zona Intesal", "codigo_zona_Intesal"));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("codigo_zona_sgs", "dgv_CodigoZonaSGS", ""));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.CreateComboBoxWithEnums(dttZonasSGS, "LocCod", "LocDes", "Zona SGS", "codigo_zona_sgs"));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.dgvtbAgregaTexBox("codigo_region", "dgv_CodigoRegion", ""));
                            dgvAgrupamientos.Columns.Add(SGS_Utiles.CreateComboBoxWithEnums(dttRegiones, "DptCod", "DptDes", "Region", "codigo_region"));
                            dgvAgrupamientos.Columns[0].Visible = true;
                            dgvAgrupamientos.Columns[1].Visible = false;
                            dgvAgrupamientos.Columns[2].Visible = false;
                            dgvAgrupamientos.Columns[3].Visible = true;
                            dgvAgrupamientos.Columns[4].Visible = false;
                            dgvAgrupamientos.Columns[5].Visible = true;
                            dgvAgrupamientos.Columns[6].Visible = false;
                            dgvAgrupamientos.Columns[7].Visible = true;
                            dgvAgrupamientos.Columns[8].Visible = false;
                            dgvAgrupamientos.Columns[9].Visible = true;

                            dgvAgrupamientos.Columns[0].Width = 50;
                            dgvAgrupamientos.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                            dgvAgrupamientos.Columns[5].Width = 150;
                            dgvAgrupamientos.Columns[7].Width = 150;
                            dgvAgrupamientos.Columns[9].Width = 150;

                            dgvAgrupamientos.AllowUserToAddRows = false;
                            dgvAgrupamientos.ReadOnly = false;
                            dgvAgrupamientos.Columns[0].ReadOnly = false;
                            dgvAgrupamientos.Columns[3].ReadOnly = true;
                            dgvAgrupamientos.Columns[5].ReadOnly = true;
                            dgvAgrupamientos.Columns[7].ReadOnly = true;
                            dgvAgrupamientos.Columns[9].ReadOnly = true;
                            dgvAgrupamientos.AllowUserToDeleteRows = false;
                            dgvAgrupamientos.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
                            return true;
                            #endregion
aca estan las funciones para agregar elementos a tu datagridview

Código:
        public static DataGridViewTextBoxColumn dgvtbAgregaTexBox(string sDataPropertyName, string sName, string sHeader)
        {
            DataGridViewTextBoxColumn Tbx = new DataGridViewTextBoxColumn();
            Tbx.DataPropertyName = sDataPropertyName;
            Tbx.Name = sName;
            Tbx.HeaderText = sHeader;
            return Tbx;
        }
        public static DataGridViewComboBoxColumn CreateComboBoxWithEnums(DataTable dttDatosCombo, string sValueMember, string sDisplayMember, string sHeaderText, string sDataPropertyName)
        {
            DataGridViewComboBoxColumn Combo = new DataGridViewComboBoxColumn();
            Combo.DataSource = dttDatosCombo;
            Combo.ValueMember = sValueMember;
            Combo.DisplayMember = sDisplayMember;
            Combo.HeaderText = sHeaderText;
            Combo.DataPropertyName = sDataPropertyName;
            return Combo;
        }
        public static DataGridViewCheckBoxColumn dgvtbAgregaCheckBox(string sHeader, string sName)
        {
            DataGridViewCheckBoxColumn Chx = new DataGridViewCheckBoxColumn();
            Chx.HeaderText = sHeader;
            Chx.Name = sName;
            return Chx;
        }
fijate que para cada columna de tu datagridview, puedes especificar si estara o no visible, si podra ser o no editable, etc.

despues todo lo que tienes que hacer, es recorrer tu datagridview, y revisar si el checkbox esta ""encendido"" y realizar las acciones de eliminacion, o de edicion, o simplemente crear un nuevo elemento con el metodo add sobre el datatable asociado al datagridview (ojo en el datatable no en datagridview).

saludos
plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...