pegar mais de uma string no checkedlistbox usando um arrayList

06/09/2017

1

Fala galera boa tarde.
estou com uma dificuldade em pegar minhas strings do meu checkedlistbox para fazer um update no meu sistema.
o meu real cenário é esse, eu consigo fazer o insert pelo checkedlistbox concatenando mais de uma string e armazenando em uma tabela chamada alunos e armazeno minhas strings selecionadas na coluna atividade.
Quando eu vou fazer o update nao consigo pegar mais de uma string para atualizar meu checkedlistbox, ele retorna apenas uma selecionada quando clico no meu botao de atualizar as informação.
segue o codigo para entender melhor.

esse é meu codigo para fazer o update atraves do ArrayLisyt onde pego os meus textbox, e comboBox

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");
            }

        }


esse é minha classe onde esta os parametros para realizar o update.

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])); // esse é meu parametro onde atualiza meus dados do meu checkedlistbox.


                    objcmd.ExecuteNonQuery();
                        return true;

                    }
                    catch (SqlException sqlerr)
                    {

                        throw sqlerr;
                    }
                    finally
                    {

                        this.desconectar();
                    }
                else
                {
                    return false;
                }
            }
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira