Array
(
)

Como apagar um registro de um listbox com Datasource?

Wingless
   - 17 jul 2008

Pessoal, tenho o seguinte código:
#Código

private void tsbExcluir_Click(object sender, EventArgs e)
        {
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\All Users\Documentos\Projetos\BMT_GERADORMASSA\Banco de dados\GeradorMassa.mdb";
            string strSQL = "DELETE FROM Tb_Valores WHERE valor_campo = ´" + txtValCampo.Text + "´";
            int linha;

            //cria a conexão com o banco de dados
            OleDbConnection dbConnection = new OleDbConnection(strConnection);
            //Cria o comando que starta a query
            dbConnection.Open();
            try
            {
                OleDbCommand cmdQry = new OleDbCommand(strSQL, dbConnection);
                linha = cmdQry.ExecuteNonQuery();
                if (linha != 0)
                {
                    MessageBox.Show("Exclusão realizada com sucesso\n" + linha + " registro(s) foi(ram) afetado(s)", "Confirmação", MessageBoxButtons.OK);
                    txtValCampo.Clear();
                    listBox1.Refresh();
                }
                else
                {
                    MessageBox.Show("Exclusão não realizada. Registro não encontrado\n" + linha + " registro(s) foi(ram) afetado(s)", "Confirmação", MessageBoxButtons.OK);
                }
            }


Preciso excluir um registro do banco de dados e apaga-lo da listBox. Apagá-lo do banco está funcionando perfeitamente, mas, o registro continua na listBox após a operação e só some se eu clicar no combo que link o conteúdo do listBox...

Tem como fazer a listBox apagar o registro automáticamente?

Já tentei usar o comando listBox.Item.Clear(), mas, dá uma exceção dizendo que não é possível usar o comando Clear enquanto o DataSource estiver setado e se eu dou um datasource = null o registros ficam corrompidos na hora de carregar na listBox...

Ricardo Silva
   - 17 jul 2008

no seu caso crio q tera que setar o DataSorce com os dados Novos...

mas ficaria mais facil se colocasse um BindingSorce... ele ja faz isso altomaticamente.

se tiver duvida em usar o bindingSorce soh posta...

Wingless
   - 18 jul 2008

Como exatamente eu uso o BindingSorce? :lol:

Ricardo Silva
   - 18 jul 2008

vc pode usar o Componente do proprio visual Studio 2005 ou 2008 que é super facil, vincula ele a tabela e pronto.. soh no arrasta e puxa

agora em C# é mais legal....
#Código

//Cria uma estancia BindingSource
BindingSource bind = new BindingSource();
//vincula a propriedade Datasorce a uma Tabela
bind.DataSource = consultar();
//vincula o bind ao ListBox
ListBox1.DataSorce = bind.DataSorce;


na duvida soh posta

Wingless
   - 18 jul 2008

Valeu.

Mas, agora não aparece nada na listbox...
Tentei colocar o valueMember, mas, com ele dá erro...

Ricardo Silva
   - 18 jul 2008

é... o meu codigo naum sei se vai dar certo... eu to numa maquina sem visual studio...

mas procura sobre BindSorce na net... que tem bastante coisa.. e é bem simples de usar...

se vc naum tiver presa...

no fim de semana eu preparo alguma coisa e posta na segunda

Blz... t+

Wingless
   - 18 jul 2008

É... eu estou com um pouco de pressa, mas, pode postar sim.
Assim se mais alguém estiver na dúvida pode usar o seu código e talves eu não consiga encontrar uma solução até segunda...

Ricardo Silva
   - 18 jul 2008

da uma olhada neste artigo....

apesar de um BindginSorce vinculado ao gridView e ser em VB pode te ajudar

http://www.macoratti.net/vbn_dgv2.htm