none
DataGridView en Visual Basic 2008 con checkbox y botton

    Question

  • Hola buenas tardes

    Por mas que he buscado y investigado me he cerrado, muchos me escriben supuestas soluciones pero nadie me dice exactamente como hacerlo...
    Espero encontrar la respuesta aqui

    Lo que pretendo hacer no es nada fuera de lo normal

    TENGO UN DATAGRIDVIEW EN "VISUALBASIC" OJO VB 2008 Y "NO ASP.NET"
    EL CUAL LE CARGUE DATOS CON DATA TABLE DESDE UNA BASE DE DATOS SQL2005
    SI LOS MUESTRA E INCLUSIVE YA LE AGREGUE UN CHECK BOX AL ID DE LA TABLA,
    LA PREGUNTA ES, COMO HAGO PARA QUE ME ELIMINE ESE REGISTRO SELECCIONADO CON CHECK BOX??

    ESPERO ME MUESTREN UN PEQUEÑO EJEMPLO!!

    GRACIAS...
    Tuesday, June 09, 2009 2:42 AM

Answers

  • Hola como estas,

    Puedes eliminar los registros de un “DataGridView”, que tengan el “CheckBox” de una columna específica chequeado. Para lograr esto puedes utilizar la siguiente instrucción Foreach que puedes ubicar dentro del evento de un botón

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        bool marcado = Convert.ToBoolean(row.Cells["Columna_Checkbox"].Value);
       
        if (marcado)
        {
           int PrimaryKey = Convert.ToInt32(row.Cells["Columna_PK"].Value);
           mtdEliminarCliente(PrimaryKey);
        }
    }


    "Columna_Checkbox": es el nombre de la columna del dataGridView1 que tiene los controles CheckCox, tambien puedes colocar aqui el Indice de esta columna.

    "Columna_PK": es el nombre de la columna del dataGridView1, que contiene la llave primaria del registro, tambien puedes colocar aqui el Indice de esta columna.

    Este Foreach recorre cada fila del “dataGridView1” y obtiene el valor chequeado en la columna que contiene los CheckBox, almacenándolo en una variable de tipo bool,  en el caso en que este valor sea true, es decir que se encuentre marcado, se obtiene el valor de la llave primaria directamente de la columna que contiene la llave primaria del registro, e inmediatamente se llama un método “mtdEliminarCliente”, el cual se supone debe eliminar el registro recibiendo la llave primaria como parámetro.

    El Foreach esta en C#, solo debes plantearlo en VB, espero te sea de utilidad.


    Julian Sanchez
    Microsoft Student Partner (MSP)
    DCE2005 + Platino
    http://juliansl.wordpress.com/
    Sunday, July 26, 2009 1:45 AM

All replies

  • Hola como estas,

    Puedes eliminar los registros de un “DataGridView”, que tengan el “CheckBox” de una columna específica chequeado. Para lograr esto puedes utilizar la siguiente instrucción Foreach que puedes ubicar dentro del evento de un botón

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        bool marcado = Convert.ToBoolean(row.Cells["Columna_Checkbox"].Value);
       
        if (marcado)
        {
           int PrimaryKey = Convert.ToInt32(row.Cells["Columna_PK"].Value);
           mtdEliminarCliente(PrimaryKey);
        }
    }


    "Columna_Checkbox": es el nombre de la columna del dataGridView1 que tiene los controles CheckCox, tambien puedes colocar aqui el Indice de esta columna.

    "Columna_PK": es el nombre de la columna del dataGridView1, que contiene la llave primaria del registro, tambien puedes colocar aqui el Indice de esta columna.

    Este Foreach recorre cada fila del “dataGridView1” y obtiene el valor chequeado en la columna que contiene los CheckBox, almacenándolo en una variable de tipo bool,  en el caso en que este valor sea true, es decir que se encuentre marcado, se obtiene el valor de la llave primaria directamente de la columna que contiene la llave primaria del registro, e inmediatamente se llama un método “mtdEliminarCliente”, el cual se supone debe eliminar el registro recibiendo la llave primaria como parámetro.

    El Foreach esta en C#, solo debes plantearlo en VB, espero te sea de utilidad.


    Julian Sanchez
    Microsoft Student Partner (MSP)
    DCE2005 + Platino
    http://juliansl.wordpress.com/
    Sunday, July 26, 2009 1:45 AM
  • hola julian k tal.

    Bueno soy novato programando, eh creado mi gridview con tres columnas a las cuales les di nombre esta es la estructura

    <

     

    Columns>

     

    <asp:TemplateField HeaderText

    ="Eliminar">

     

    <ItemTemplate

    >

     

    <asp:CheckBox ID="CheckEliminar" runat="server"

    />

     

     

    </ItemTemplate

    >

     

    </asp:TemplateField

    >

     

    </Columns>

    ahora en el codigo C# puse tu codigo:

    protected

     

     

    void btnliminar_Click(object sender, EventArgs

    e)

    {

     

     

    foreach (GridViewRow row in

    grvClientes.Rows)

    {

     

     

    bool marcado = Convert.ToBoolean(row.Cells["Eliminar"

    ].value);

     

     

    if

    (marcado)

    {

     

     

    int PrimaryKey = Convert.ToInt32(row.Cells["ID"

    ].Value);

    mtdEliminarCliente(PrimaryKey);

     

     

     

     

     

    }

    }

    me sale error en la parte de row.cells["Eliminar"] me dice que no puede convertir un string a int, espero me puedas ayudar de antemano gracias

     

     

     

     

     

     

    Tuesday, July 12, 2011 5:48 PM