Usuário com melhor resposta
Problemas com UpdateCommand

Pergunta
-
fala eaeee galera,,,Estou com problemas para atualizar os dados do meu banco em SQL-SERVER.. utilizando C#!!!na tela aparece os dados atualizados sem erro algum , mas no banco os dados não há nenhuma alteração..segue abaixo o código.. acredito que estou esquecendo algum detalhe..
private void btn_Atualizar_Cliente_Click(object sender, EventArgs e) { try { int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString()); id = id + 1; SqlConnection cs = new SqlConnection("Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE"); SqlDataAdapter da = new SqlDataAdapter(); da.UpdateCommand = new SqlCommand(@"UPDATE Cliente SET NOME = @NOME, CPF = @CPF, RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL = @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO = @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = @CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, ANOTACLIENTE = @ANOTA WHERE IDCliente = + '" + id + "'" , cs); da.UpdateCommand.Parameters.Add("@NOME", SqlDbType.NVarChar).Value = txtNome.Text; da.UpdateCommand.Parameters.Add("@CPF", SqlDbType.NVarChar).Value = mtxtCPF.Text; da.UpdateCommand.Parameters.Add("@RG", SqlDbType.NVarChar).Value = txtRG.Text; da.UpdateCommand.Parameters.Add("@NASCIMENTO", SqlDbType.NVarChar).Value = mtxtNasc.Text; da.UpdateCommand.Parameters.Add("@ESTADOCIVIL", SqlDbType.NVarChar).Value = cbxEstadoCivil.Text; da.UpdateCommand.Parameters.Add("@RUA", SqlDbType.NVarChar).Value = txtRua.Text; da.UpdateCommand.Parameters.Add("@NUMERO", SqlDbType.NVarChar).Value = txtNumero.Text; da.UpdateCommand.Parameters.Add("@COMPLEMENTO", SqlDbType.NVarChar).Value = txtComp.Text; da.UpdateCommand.Parameters.Add("@BAIRRO", SqlDbType.NVarChar).Value = txtBairro.Text; da.UpdateCommand.Parameters.Add("@CIDADE", SqlDbType.NVarChar).Value = txtCidade.Text; da.UpdateCommand.Parameters.Add("@CEP", SqlDbType.NVarChar).Value = mtxtCEP.Text; da.UpdateCommand.Parameters.Add("@RESIDENCIAL", SqlDbType.NVarChar).Value = mtxtResidencial.Text; da.UpdateCommand.Parameters.Add("@CELULAR", SqlDbType.NVarChar).Value = mtxtCelular.Text; da.UpdateCommand.Parameters.Add("@ANOTA", SqlDbType.NVarChar).Value = txtAnotacoes.Text; cs.Open(); int retorno = da.UpdateCommand.ExecuteNonQuery(); cs.Close(); MessageBox.Show("Dados alterados com sucesso!!!"); } catch (Exception erro) { MessageBox.Show("ERRO 32 - Não foi possível alterar os dados!!"); } }
Desde já agradeço pela ajuda!!!!
Respostas
-
Consegui fazer rodar !!!!!!!!!o problema era que todos os parâmetros estavam atribuídos assim:nome.Value = mtxtCPF.Text;um detalhe que passou desapercebido!!!!!vou colocar código resolvido para consulta de outros usuários!!!!
private void btn_Atualizar_Cliente_Click(object sender, EventArgs e) { int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString()); string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE"; string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, " + "RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL " + "= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO " + "= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = " + "@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, " + "ANOTACLIENTE = @ANOTACLIENTE WHERE IDCliente = + '" + id + "'"; SqlConnection cs = new SqlConnection(conexao); try { SqlCommand comando = new SqlCommand(str_atualiza, cs); SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar); nome.Value = txtNome.Text; comando.Parameters.Add(nome); SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar); cpf.Value = mtxtCPF.Text; comando.Parameters.Add(cpf); SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar); rg.Value = txtRG.Text; comando.Parameters.Add(rg); SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar); nascimento.Value = mtxtNasc.Text; comando.Parameters.Add(nascimento); SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar); estadocivil.Value = cbxEstadoCivil.Text; comando.Parameters.Add(estadocivil); SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar); rua.Value = txtRua.Text; comando.Parameters.Add(rua); SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar); numero.Value = txtNumero.Text; comando.Parameters.Add(numero); SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar); complemento.Value = txtComp.Text; comando.Parameters.Add(complemento); SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar); bairro.Value = txtBairro.Text; comando.Parameters.Add(bairro); SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar); cidade.Value = txtCidade.Text; comando.Parameters.Add(cidade); SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar); cep.Value = mtxtCEP.Text; comando.Parameters.Add(cep); SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar); residencial.Value = mtxtResidencial.Text; comando.Parameters.Add(residencial); SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar); celular.Value = mtxtCelular.Text; comando.Parameters.Add(celular); SqlParameter anotacliente = new SqlParameter("@ANOTACLIENTE", SqlDbType.NVarChar); anotacliente.Value = txtAnotacoes.Text; comando.Parameters.Add(anotacliente); cs.Open(); comando.ExecuteNonQuery(); cs.Close(); // Crie alguma funcao para limpar os dados dos texbox MessageBox.Show("Dados alterados com sucesso!!!"); } catch (Exception erro) { MessageBox.Show("ERRO 32 - Não foi possível alterar os dados!!"); } finally { if (cs.State == ConnectionState.Open) cs.Close(); } }
Até a próxima e Valeu Maciel!!!- Marcado como Resposta DougKauf terça-feira, 23 de fevereiro de 2010 21:17
Todas as Respostas
-
-
Cara teste ai e me diz o que que deu.
___________________________________________________________________________________________________________________
string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE";
string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, "
+"RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL "
+"= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO "
+"= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = "
+"@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, "
+"ANOTACLIENTE = @ANOTA WHERE IDCliente = + '" + id + "'";
SqlConnection cs = new SqlConnection(conexao);
try
{
int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString());
id = id + 1;
SqlCommand comando = new SqlCommand(str_comando,cs);
SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar);
nome.Value = txtNome.Text;
comando.Parameters.Add(nome);
SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar);
nome.Value = mtxtCPF.Text;
comando.Parameters.Add(cpf);
SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar);
nome.Value = txtRG.Text;
comando.Parameters.Add(rg);SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar);
nome.Value = mtxtNasc.Text;
comando.Parameters.Add(nascimento);SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar);
nome.Value = cbxEstadoCivil.Text;
comando.Parameters.Add(estadocivil);SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar);
nome.Value = txtRua.Text;
comando.Parameters.Add(rua);SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar);
nome.Value = txtNumero.Text;
comando.Parameters.Add(numero);SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar);
nome.Value = txtComp.Text;
comando.Parameters.Add(complemento);SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar);
nome.Value = txtBairro.Text;
comando.Parameters.Add(bairro);SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar);
nome.Value = txtCidade.Text;
comando.Parameters.Add(cidade);SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar);
nome.Value = mtxtCEP.Text;
comando.Parameters.Add(cep);SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar);
nome.Value = mtxtResidencial.Text;
comando.Parameters.Add(residencial);SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar);
nome.Value = mtxtCelular.Text;
comando.Parameters.Add(celular);SqlParameter anota = new SqlParameter("@ANOTA", SqlDbType.NVarChar);
nome.Value = txtAnotacoes.Text;
comando.Parameters.Add(anota);
cs.Open();comando.ExecuteNonQuery();
cs.Close();
// Crie alguma funcao para limpar os dados dos texbox
MessageBox.Show("Dados alterados com sucesso!!!");}
catch (Exception erro)
{
MessageBox.Show("ERRO 32 - Não foi possível alterar os dados!!");
}
finally
{
if (cs.State == ConnectionState.Open)
cs.Close();
} -
Fala Maciel,,Cara , rolou o seguinte erro..erro = {"A consulta com parâmetros '(@NOME nvarchar(4000),@CPF nvarchar(4000),@RG nvarchar(4000),@NA' espera o parâmetro '@CPF', que não foi fornecido."}só que todos esses campos estão preenchidos tanto no banco quanto na tela!!! o CPF também está preenchido nas duas aplicações...Tens alguma idéia do que possa ser???Valeu pela ajuda!!
-
Desculpa aíi Maciel ,, não tinha visto a tua primeira resposta...o "int id" recebe o ID do cliente que foi selecionado na ComboBox que possui todos os clientes cadastrados..e quanto ao E no update = IDCliente = + '" + id + "'" --> O ID não esta como auto increment no banco?faz a relação com o ID que está no banco!!!Estou pesquisando pra ver se encontro o porquê do erro,, mas até agora não encontrei nada!!!Segue o erro aí denovo!erro = {"A consulta com parâmetros '(@NOME nvarchar(4000),@CPF nvarchar(4000),@RG nvarchar(4000),@NA' espera o parâmetro '@CPF', que não foi fornecido."}
-
Consegui fazer rodar !!!!!!!!!o problema era que todos os parâmetros estavam atribuídos assim:nome.Value = mtxtCPF.Text;um detalhe que passou desapercebido!!!!!vou colocar código resolvido para consulta de outros usuários!!!!
private void btn_Atualizar_Cliente_Click(object sender, EventArgs e) { int id = Convert.ToInt32(cbxClientes.SelectedValue.ToString()); string conexao = "Data Source=DKAUF; Initial Catalog=BancoEscritorio; Integrated Security=TRUE"; string str_atualiza = "UPDATE Cliente SET NOME = @NOME, CPF = @CPF, " + "RG = @RG, NASCIMENTO = @NASCIMENTO, ESTADOCIVIL " + "= @ESTADOCIVIL, RUA = @RUA, NUMERO = @NUMERO, COMPLEMENTO " + "= @COMPLEMENTO, BAIRRO = @BAIRRO, CIDADE = @CIDADE, CEP = " + "@CEP, RESIDENCIAL = @RESIDENCIAL, CELULAR = @CELULAR, " + "ANOTACLIENTE = @ANOTACLIENTE WHERE IDCliente = + '" + id + "'"; SqlConnection cs = new SqlConnection(conexao); try { SqlCommand comando = new SqlCommand(str_atualiza, cs); SqlParameter nome = new SqlParameter("@NOME", SqlDbType.NVarChar); nome.Value = txtNome.Text; comando.Parameters.Add(nome); SqlParameter cpf = new SqlParameter("@CPF", SqlDbType.NVarChar); cpf.Value = mtxtCPF.Text; comando.Parameters.Add(cpf); SqlParameter rg = new SqlParameter("@RG", SqlDbType.NVarChar); rg.Value = txtRG.Text; comando.Parameters.Add(rg); SqlParameter nascimento = new SqlParameter("@NASCIMENTO", SqlDbType.NVarChar); nascimento.Value = mtxtNasc.Text; comando.Parameters.Add(nascimento); SqlParameter estadocivil = new SqlParameter("@ESTADOCIVIL", SqlDbType.NVarChar); estadocivil.Value = cbxEstadoCivil.Text; comando.Parameters.Add(estadocivil); SqlParameter rua = new SqlParameter("@RUA", SqlDbType.NVarChar); rua.Value = txtRua.Text; comando.Parameters.Add(rua); SqlParameter numero = new SqlParameter("@NUMERO", SqlDbType.NVarChar); numero.Value = txtNumero.Text; comando.Parameters.Add(numero); SqlParameter complemento = new SqlParameter("@COMPLEMENTO", SqlDbType.NVarChar); complemento.Value = txtComp.Text; comando.Parameters.Add(complemento); SqlParameter bairro = new SqlParameter("@BAIRRO", SqlDbType.NVarChar); bairro.Value = txtBairro.Text; comando.Parameters.Add(bairro); SqlParameter cidade = new SqlParameter("@CIDADE", SqlDbType.NVarChar); cidade.Value = txtCidade.Text; comando.Parameters.Add(cidade); SqlParameter cep = new SqlParameter("@CEP", SqlDbType.NVarChar); cep.Value = mtxtCEP.Text; comando.Parameters.Add(cep); SqlParameter residencial = new SqlParameter("@RESIDENCIAL", SqlDbType.NVarChar); residencial.Value = mtxtResidencial.Text; comando.Parameters.Add(residencial); SqlParameter celular = new SqlParameter("@CELULAR", SqlDbType.NVarChar); celular.Value = mtxtCelular.Text; comando.Parameters.Add(celular); SqlParameter anotacliente = new SqlParameter("@ANOTACLIENTE", SqlDbType.NVarChar); anotacliente.Value = txtAnotacoes.Text; comando.Parameters.Add(anotacliente); cs.Open(); comando.ExecuteNonQuery(); cs.Close(); // Crie alguma funcao para limpar os dados dos texbox MessageBox.Show("Dados alterados com sucesso!!!"); } catch (Exception erro) { MessageBox.Show("ERRO 32 - Não foi possível alterar os dados!!"); } finally { if (cs.State == ConnectionState.Open) cs.Close(); } }
Até a próxima e Valeu Maciel!!!- Marcado como Resposta DougKauf terça-feira, 23 de fevereiro de 2010 21:17
-