Array
(
)

Como apagar um registro de um listbox com Datasource?

Wingless
   - 17 jul 2008

Pessoal, tenho o seguinte código:
#Códigoprivate 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