PROBLEMAS PARA APAGAR REGISTRO

MARIOBOARI 08/03/2013 21:54:03
#420206
Prezados amigos, mais uma vez estou precisando da ajuda de vocês.
Tenho um banco de dados, como uma tabela que contem 3 colunas, na ultima coluna fica registros de quantidade, na coluna de quantidade quando ficar o valor [Ô] 0 [Ô] (zero), quero deletar esta linha, os comando que uso não apresenta erro, porém a linha não é apagada.
Segue os comandos que estou usando:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Banco de dados.MDB[Ô])

Dim deletar As String
deletar = [Ô]DELETE FROM tabela1 WHERE coluna3 = [Ô] & 0
Dim del As New OleDbCommand(deletar, con)
con.Open()
del.ExecuteNonQuery()
con.Close()

MessageBox.Show([Ô]Registros deletados com sucesso![Ô])


End Sub

Obrigado a todos que puderem me ajudar.

Mário.
JABA 09/03/2013 00:26:46
#420212
experimente colocar um try catch para capturar um possivel erro, tipo assim:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try
Dim con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Banco de dados.MDB[Ô])

Dim deletar As String
deletar = [Ô]DELETE FROM tabela1 WHERE coluna3 = [Ô] & 0
Dim del As New OleDbCommand(deletar, con)
con.Open()
del.ExecuteNonQuery()
con.Close()

MessageBox.Show([Ô]Registros deletados com sucesso![Ô])

Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Tente ai dessa forma e se der erro e voce não descobrir o problema, mande a mensagem de erro para podermos entender o que está acontecendo.

vlw
PROFESSOR 09/03/2013 02:20:20
#420219
Resposta escolhida
De fato, não aparenta problemas com a lógica. Com a pasta e a existência do arquivo de dados nela, pode ser, mas não com a lógica. A sugestão do JABA (Try/Catch) é perfeitamente adequada e aliás, deveria ser padrão para toda rotina de conexão, operação CRUD, acessos á arquivos e/ou redes, pelo menos.
Eu sugeriria apenas uma pequena alteração á sugestão do JABA, e ainda assim, apenas para não manter uma conexão [Ô]pendurada[Ô] na eventual ocorrência de erro:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim pst As String = String.Format([Ô]{0}\Banco de dados.MDB[Ô], My.Application.Info.DirectoryPath)
Dim cs As String = String.Format([Ô]Provider=Microsoft.Jet.OleDb.4.0;Data Source={0};[Ô],pst)
Dim deletar As String = [Ô]DELETE FROM tabela1 WHERE coluna3 = 0[Ô]
Using con As New OleDbConnection(cs)
con.Open()
Using cmd As OleDbCommand = con.CreateCommand
cmd.CommandText = deletar
cmd.ExecuteNonQuery()
End Using
End Using
MessageBox.Show([Ô]Registros deletados com sucesso![Ô])
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
MARIOBOARI 09/03/2013 07:42:13
#420222
JABA, obrigado pela sugestão, fiz as modificações sugeridas pelo PROFESSOR e resolveu o problema, ainda não descobri o que estava errado antes, mas agradeço a todos.
Tópico encerrado , respostas não são mais permitidas