Usuário com melhor resposta
error botão excluir.

Pergunta
-
amigos estou estudando C# e fazendo a primeira aplicação, tenho o formulário de pesquisar cliente nele tem um grid coloquei um botão pesquisar ele traz os clientes para o grid tudo beleza, ai passei para o botão excluir só que quando mando excluir a linha selecionada no grid e exclui todos os registro do banco. veja o código abaixo.
private void buttonExcluir_Click(object sender, EventArgs e)
{
if (dataGridViewPrincipal.SelectedRows.Count == 0)
{
MessageBox.Show("Nenhum cliente selecionado");
return;
}
DialogResult resultado = MessageBox.Show("Tem Certeza?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (resultado == DialogResult.No)
{
return;
}
Cliente clienteSelecionado = (dataGridViewPrincipal.SelectedRows[0].DataBoundItem as Cliente);
ClienteNegocios clienteNegocios = new ClienteNegocios();
string retorno = clienteNegocios.Excluir(clienteSelecionado);
try
{
int idCliente = Convert.ToInt32(retorno);
MessageBox.Show("Cliente excluido com sucesso", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
AtualizarGrid();
}
catch
{
MessageBox.Show("Não foi possivel excluir. Detalhe: " + retorno, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}Fico muito grato pela ajuda.. obrigado.
Respostas
-
Edlenilson,
O erro está na tua stored procedure.
Você está comparando variável com variável e não campo com variável.
DELETE FROM tblCliente WHERE IdCliente = @IdCliente
Att,
Antero Marques
_________________________________________________________________________
Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta.
O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.
- Editado Antero Marques sábado, 9 de abril de 2016 15:57
- Marcado como Resposta Edlenilson sábado, 9 de abril de 2016 18:35
Todas as Respostas
-
Boa noite,
Não sei se entendi seu problema, mas vamos lá...
Primeiro se esta excluindo todos os registros no banco de dados, o erro esta no método excluir, pode estar faltando o "where" ou seja desde que o cliente seja 1 por exemplo.
Para esclarecer melhor, postar o método "Excluir".Uma observação é que seu metodo excluir retorna uma "string" :
string retorno = clienteNegocios.Excluir(clienteSelecionado);
Só que após o retorno você converte para int:
int idCliente = Convert.ToInt32(retorno);
Sendo assim você poderia retornar direto um "int" no Excluir ou retornar um boleano.
Parabéns pela iniciativa, continue firme...Qualquer dúvida, pode postar.
Att,
-
ESSE É MEU MÉTODO EXCLUIR E LOGO DEPOIS VOU COLOCAR A STOREDPROCEDURE DEPOIS OK.
public string Excluir(Cliente cliente)
{
try
{
acessoDadosSqlServer.LimparParametros();
acessoDadosSqlServer.AdicionarParamentros("@IdCliente", cliente.IdCliente);
string idCliente = acessoDadosSqlServer.ExecutarManipulacao(CommandType.StoredProcedure, "uspClienteExcluir").ToString();
return idCliente;
}
catch (Exception exception)
{
return exception.Message;
}
}AGORA STORESPROCEDURE. _______________________________________________
USE [Drausio]
GO
/****** Object: StoredProcedure [dbo].[uspClienteExcluir] Script Date: 09/04/2016 11:30:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspClienteExcluir]
@IdCliente int
AS
BEGIN
DELETE FROM
tblCliente
WHERE
@IdCliente = @IdCliente
SELECT @IdCliente AS Retorno
ENDMais uma vez obrigado.
-
Edlenilson,
O erro está na tua stored procedure.
Você está comparando variável com variável e não campo com variável.
DELETE FROM tblCliente WHERE IdCliente = @IdCliente
Att,
Antero Marques
_________________________________________________________________________
Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta.
O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.
- Editado Antero Marques sábado, 9 de abril de 2016 15:57
- Marcado como Resposta Edlenilson sábado, 9 de abril de 2016 18:35
-