DELETAR UMA LINHA USANDO VARIAVEIS

MARIOBOARI 17/02/2013 19:31:48
#419239
Caros amigos, estou com um novo problema, Tenho um banco de dados com duas tabelas, quero pegar as informações da tabela1 e informar em variáveis, depois quero que seja apagada as mesmas informações na tabela2 para não ter duplicidade, quero também apagar na tabela2 as linhas que contém 0(zero).
Segue os códigos 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[Ô])
con.Open()
Dim sql As String = [Ô] select coluna1,coluna2,coluna3 FROM tabela1[Ô]
Dim CD As New OleDbCommand()
CD.Connection = con
CD.CommandText = sql
Dim DR As OleDbDataReader = CD.ExecuteReader
If DR.Read Then
Dim VAR1 As String = CStr(DR([Ô]coluna1[Ô]))
Dim VAR2 As String = CStr(DR([Ô]coluna2[Ô]))
Dim VAR3 As String = CStr(DR([Ô]coluna3[Ô]))


Dim deletar As String
deletar = [Ô]delete from tabela2 where N1 = [ô] & 0 & [ô];[Ô]
Dim DEL As New OleDbCommand(deletar, con)
DEL.ExecuteNonQuery()
DEL.CommandText = deletar
deletar = [Ô]DELETE FROM tabela2 WHERE coluna1=[ô]&VAR1&[ô], coluna2=[ô]&VAR2[ô], coluna3=[ô]&VAR3[ô][Ô]
DEL.ExecuteNonQuery()

End If
End Sub



Na linha: DEL.ExecuteNonQuery() --> aparece a mensagem [Ô]Nenhum valor foi fornecido para um ou mais parâmetros necessários.[Ô] na hora que tento executar.

Obrigado a todos pela ajuda.
Mário.






JABA 18/02/2013 12:06:13
#419266
Resposta escolhida
Faça assim:

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[Ô])
con.Open()
Dim sql As String = [Ô] select coluna1,coluna2,coluna3 FROM tabela1[Ô]
Dim CD As New OleDbCommand()
CD.Connection = con
CD.CommandText = sql
Dim DR As OleDbDataReader = CD.ExecuteReader
If DR.Read Then
Dim VAR1 As String = CStr(DR([Ô]coluna1[Ô]))
Dim VAR2 As String = CStr(DR([Ô]coluna2[Ô]))
Dim VAR3 As String = CStr(DR([Ô]coluna3[Ô]))

Dim deletar As String
deletar = [Ô]delete from tabela2 where N1 = [ô] & 0 & [ô];[Ô]
Dim DEL As New OleDbCommand(deletar, con)
DEL.ExecuteNonQuery()

[ô]Inverta a ordem como fiz abaixo que funciona
deletar = [Ô]DELETE FROM tabela2 WHERE coluna1=[ô]&VAR1&[ô], coluna2=[ô]&VAR2[ô], coluna3=[ô]&VAR3[ô][Ô]

DEL.CommandText = deletar

DEL.ExecuteNonQuery()

End If
End Sub
MARIOBOARI 18/02/2013 22:25:30
#419319
JABA, funcionou perfeitamente, mais uma vez lhe agradeço.
Mário.
Tópico encerrado , respostas não são mais permitidas