Using ArrayList to update information in C # "checkedlistbox"

1

Talk to me with a difficulty getting my strings to update my information. My scenario is this one currently: I have a checkedlistbox where I have my total strings are 9. In the data insertion part I can do it normally, but I do not know how to get the selected string and update OBS: MY STRINGS ARE FIXED SO MUCH TO INSERT SO MUCH TO UPDATE . if I put my checkedlistbox.text, it only takes a string, even though I select more than one, I already tried checkedlistbox.setitems, CheckedItems and so on. and in vdd I need to pick up more than one selected string and send it to my bank.

This is my code where I have my fields to update, I used parameters because I believe it would be easier.

public bool Update(ArrayList p_arrUpdate)
        {
        vsql = "UPDATE alunos SET nome = @nome, idade = @idade, endereco = @endereco, quadra_lote = @quadra_lote, telefone = @telefone, email = @email, cidade = @cidade, uf = @uf, nome_pai = @nome_pai, nome_mae = @nome_mae, situacao = @situacao, atividade = @atividade  WHERE id_aluno = @id_aluno";

            SqlCommand objcmd = null;

            if (this.conectar())

                try // ele responsavel por tentar executar o array, se der alguma coisa errada e vai cair no finally
                {

                    objcmd = new SqlCommand(vsql, objCon);
                    objcmd.Parameters.Add(new SqlParameter("@id_aluno", p_arrUpdate[0]));
                    objcmd.Parameters.Add(new SqlParameter("@nome", p_arrUpdate[1]));
                    objcmd.Parameters.Add(new SqlParameter("@idade", p_arrUpdate[2]));
                    objcmd.Parameters.Add(new SqlParameter("@endereco", p_arrUpdate[3]));
                    objcmd.Parameters.Add(new SqlParameter("@quadra_lote", p_arrUpdate[4]));
                    objcmd.Parameters.Add(new SqlParameter("@telefone", p_arrUpdate[5]));
                    objcmd.Parameters.Add(new SqlParameter("@email", p_arrUpdate[6]));
                    objcmd.Parameters.Add(new SqlParameter("@cidade", p_arrUpdate[7]));
                    objcmd.Parameters.Add(new SqlParameter("@uf", p_arrUpdate[8]));
                    objcmd.Parameters.Add(new SqlParameter("@nome_pai", p_arrUpdate[9]));
                    objcmd.Parameters.Add(new SqlParameter("@nome_mae", p_arrUpdate[10]));
                    objcmd.Parameters.Add(new SqlParameter("@situacao", p_arrUpdate[11]));
                    objcmd.Parameters.Add(new SqlParameter("@atividade", p_arrUpdate[12]));


                objcmd.ExecuteNonQuery();
                    return true;

                }
                catch (SqlException sqlerr)
                {

                    throw sqlerr;
                }
                finally
                {

                    this.desconectar();
                }
            else
            {
                return false;
            }
        }

This is my code where in the save button the changes it makes the ArrayList.

private void button1_Click(object sender, EventArgs e)
    {
        SysDBADM obj = new SysDBADM();
        ArrayList arr = new ArrayList();

        try
        {
            arr.Add(TB_cod.Text);
            arr.Add(TB_nome.Text);
            arr.Add(TB_idade.Text);
            arr.Add(TB_endereco.Text);
            arr.Add(TB_quadra_lote.Text);
            arr.Add(MD_telefoneCel.Text);
            arr.Add(TB_email.Text);
            arr.Add(TB_cidade.Text);
            arr.Add(TB_uf.Text);
            arr.Add(TB_nomepai.Text);
            arr.Add(TB_nomemae.Text);
            arr.Add(CB_ativo.Text);
            arr.Add(CLB_atividade.Text + ","); // esse é meu checkedlistbox

            if (obj.Update(arr))
                {

                    TB_cod.Clear();
                    TB_nome.Clear();
                    TB_idade.Clear();
                    TB_endereco.Clear();
                    TB_quadra_lote.Clear();
                    MD_telefoneFixo.Clear();
                    MD_telefoneCel.Clear();
                    TB_email.Clear();
                    TB_cidade.Clear();
                    TB_uf.Clear();
                    TB_nomepai.Clear();
                    TB_nomemae.Clear();
                    CB_ativo.Text = "";


                    while (CLB_atividade.CheckedItems.Count > 0)
                {
                    CLB_atividade.SetItemChecked(CLB_atividade.CheckedIndices[0],false);
                }
                   MessageBox.Show("Cadastro Atualizado.", "Mensagem do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);


                }

                else
                {
                    MessageBox.Show("Erro ao Atualizar!", "Mesagem do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
           }

        catch (Exception erro)
        {
            MessageBox.Show(erro + "Erro Ocorrido");
        }

    }

This is the image where I make the changes to the registered record.   

    
asked by anonymous 05.09.2017 / 21:28

1 answer

0

Replace your while with this foreach

foreach (var item in CLB_atividade.CheckedItems)
{
  //item tem o valor checado                
}

Event usage ItemCheck

    
05.09.2017 / 22:03