Usuário com melhor resposta
Excluir um registro

Pergunta
-
Estou fazendo isso para excluir um registro do meu banco >>Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.ClickDim conn As New OleDbConnection()'Dim cmd As New OleDbCommand(Sql, conn)Dim cmd As OleDbCommand = New OleDbCommand("DELETE FROM [Dobradiças] WHERE ID = ?", conn)Tryconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\CadastroDobradiças\Biblioteca_Ferragens\ferragens.mdb")cmd = New OleDbCommand'cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = ?"cmd.Parameters.Add("?", OleDbType.VarChar).Value = TextBox1.Textcmd.Connection = connconn.Open()cmd.ExecuteNonQuery()Catch et As ExceptionThrow New Exception(et.Message)FinallyIf (Not (cmd) Is Nothing) Thencmd.Dispose()End IfIf (conn.State <> ConnectionState.Closed) Thenconn.Close()conn.Dispose()End IfEnd TryEnd Subnao esta funcionando, o que estou fazendo errado ?
Respostas
-
Uma coisa a sua linha 'cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = ?" está comentada, tente mudando essas duas linhas:
'cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = ?"cmd.Parameters.Add("?", OleDbType.VarChar).Value = TextBox1.Text
para:
cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = @ID"cmd.Parameters.Add("@ID", OleDbType.VarChar).Value = TextBox1.Text- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44
-
Dim conn As New OleDbConnection()conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\CadastroDobradiças\Biblioteca_Ferragens\ferragens.mdb"conn.Open()Dim cmd As OleDbCommand = New OleDbCommand("DELETE FROM [Dobradiças] WHERE Codigo = @Codigo, A = @A, B = @B, C = @C, D = @D, E = @E, F = @F, Descricao = @Descricao", conn)cmd.Parameters.Add("@Codigo", OleDbType.VarChar).Value = TextBox1.Textcmd.Parameters.Add("@Nome", OleDbType.VarChar).Value = TextBox2.Textcmd.Parameters.Add("@A", OleDbType.VarChar).Value = TextBox3.Textcmd.Parameters.Add("@B", OleDbType.VarChar).Value = TextBox4.Textcmd.Parameters.Add("@C", OleDbType.VarChar).Value = TextBox5.Textcmd.Parameters.Add("@D", OleDbType.VarChar).Value = TextBox6.Textcmd.Parameters.Add("@E", OleDbType.VarChar).Value = TextBox7.Textcmd.Parameters.Add("@F", OleDbType.VarChar).Value = TextBox8.Textcmd.Parameters.Add("@Descricao", OleDbType.VarChar).Value = TextBox9.Textcmd.ExecuteNonQuery()conn.Close()dai esta dizendo que da erro na sintaxe da virgulaquando vou passar os parametroscomo deve ficar ?
- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44
-
Bruno você usa and ou or, and todas as comparações tem que ser verdadeiras e or se qualquer uma for verdadeira ele apaga ficaria assim:
DELETE FROM [Dobradiças] WHERE Codigo = @Codigo and A = @A and B = @B and C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao
ou:
DELETE FROM [Dobradiças] WHERE Codigo = @Codigo or A = @A or B = @B or C = @C or D = @D or E = @E or F = @F or Descricao = @Descricao
você pode combinar também:
DELETE FROM [Dobradiças] WHERE (Codigo = @Codigo and A = @A and B = @B) or (C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao)
Assim com a combinação se (Codigo = @Codigo and A = @A and B = @B) ou (C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao)
for verdadeiro é apagado- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44
Todas as Respostas
-
Uma coisa a sua linha 'cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = ?" está comentada, tente mudando essas duas linhas:
'cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = ?"cmd.Parameters.Add("?", OleDbType.VarChar).Value = TextBox1.Text
para:
cmd.CommandText = "DELETE FROM [Dobradiças] WHERE ID = @ID"cmd.Parameters.Add("@ID", OleDbType.VarChar).Value = TextBox1.Text- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44
-
Dim conn As New OleDbConnection()conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\CadastroDobradiças\Biblioteca_Ferragens\ferragens.mdb"conn.Open()Dim cmd As OleDbCommand = New OleDbCommand("DELETE FROM [Dobradiças] WHERE Codigo = @Codigo, A = @A, B = @B, C = @C, D = @D, E = @E, F = @F, Descricao = @Descricao", conn)cmd.Parameters.Add("@Codigo", OleDbType.VarChar).Value = TextBox1.Textcmd.Parameters.Add("@Nome", OleDbType.VarChar).Value = TextBox2.Textcmd.Parameters.Add("@A", OleDbType.VarChar).Value = TextBox3.Textcmd.Parameters.Add("@B", OleDbType.VarChar).Value = TextBox4.Textcmd.Parameters.Add("@C", OleDbType.VarChar).Value = TextBox5.Textcmd.Parameters.Add("@D", OleDbType.VarChar).Value = TextBox6.Textcmd.Parameters.Add("@E", OleDbType.VarChar).Value = TextBox7.Textcmd.Parameters.Add("@F", OleDbType.VarChar).Value = TextBox8.Textcmd.Parameters.Add("@Descricao", OleDbType.VarChar).Value = TextBox9.Textcmd.ExecuteNonQuery()conn.Close()dai esta dizendo que da erro na sintaxe da virgulaquando vou passar os parametroscomo deve ficar ?
- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44
-
Bruno você usa and ou or, and todas as comparações tem que ser verdadeiras e or se qualquer uma for verdadeira ele apaga ficaria assim:
DELETE FROM [Dobradiças] WHERE Codigo = @Codigo and A = @A and B = @B and C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao
ou:
DELETE FROM [Dobradiças] WHERE Codigo = @Codigo or A = @A or B = @B or C = @C or D = @D or E = @E or F = @F or Descricao = @Descricao
você pode combinar também:
DELETE FROM [Dobradiças] WHERE (Codigo = @Codigo and A = @A and B = @B) or (C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao)
Assim com a combinação se (Codigo = @Codigo and A = @A and B = @B) ou (C = @C and D = @D and E = @E and F = @F and Descricao = @Descricao)
for verdadeiro é apagado- Marcado como Resposta Bruno Gaiola sexta-feira, 30 de outubro de 2009 10:44