Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danmartinsiss

update nao atualiza apenas a ID atualiza a todos os dados

Recommended Posts

Boa tarde alguem poderia dar uma forca, estou aprendendo a fazer esse update mas esta dando erro, pq esta atualizando a tabela toda, mas e nao apenas a id que foi buscada

 

alguem pode dar uma forca para atualizar apenas o ID.

 

fiz um esquema em que se o cliente nao estiver usando um novo form que ele atualize quando for uma edicao.

 

private void tsbSalvar_Click(object sender, EventArgs e)
        {
            if (novo)
            {
                string sql = "INSERT INTO CLIENTE (NOME, ENDERECO, CEP, BAIRRO, CIDADE, UF, TELEFONE)" +
                            "VALUES('" + txtNome.Text + "', '" + txtEndereco.Text + "','" + maskCep.Text + "', '" + txtBairro.Text + "', '"
                            + txtCidade.Text + "', '" + txtUf.Text + "', '" + maskFone.Text + "')";

                SqlConnection con = new SqlConnection(connectionString); 
                SqlCommand cmd = new SqlCommand(sql, con); 
                cmd.CommandType = CommandType.Text; 
                con.Open();


                try
                {
                    int i = cmd.ExecuteNonQuery();
                    if (i > 0)
                        MessageBox.Show("Cadastro realizado com Sucesso!");

                }
                catch (Exception ex)
                {
                    MessageBox.Show("erro: " + ex.ToString());
                }
                finally
                {
                    con.Close();
                }
                              
            }
            else
            {
                string sql = "UPDATE CLIENTE SET NOME = '" + txtNome.Text + "', ENDERECO = '" + txtEndereco.Text 
                    + "', CEP = '" + maskCep.Text + "', BAIRRO = '" + txtBairro.Text + "', CIDADE = '"
                            + txtCidade.Text + "', UF = '" + txtUf.Text + "', TELEFONE = '" + maskFone.Text + "WHERE ID = " + (tstId.Text) + "'";

                SqlConnection con = new SqlConnection(connectionString); 
                SqlCommand cmd = new SqlCommand(sql, con); 
                cmd.CommandType = CommandType.Text; 
                
                con.Open();
                
                try
                    {
                    int a = cmd.ExecuteNonQuery();
                    if (a > 0)
                        MessageBox.Show("Cadastro atualizado com Sucesso!");

                }
                catch (Exception ex)
                {
                    MessageBox.Show("erro: " + ex.ToString());
                }
                finally
                {
                    con.Close();
                }
            }

            tsbNovo.Enabled = true; 
            tsbSalvar.Enabled = false; 
            tbsCancelar.Enabled = false; 
            tbsExcluir.Enabled = false; 
            tstId.Enabled = true; 
            tbsBuscar.Enabled = true;
            txtNome.Enabled = false; 
            txtEndereco.Enabled = false; 
            maskCep.Enabled = false;
            txtBairro.Enabled = false; 
            txtCidade.Enabled = false; 
            txtUf.Enabled = false; 
            maskFone.Enabled = false; 
            txtId.Text = ""; 
            txtNome.Text = ""; 
            txtEndereco.Text = ""; 
            maskCep.Text = ""; 
            txtBairro.Text = ""; 
            txtCidade.Text = ""; 
            txtUf.Text = ""; 
            maskFone.Text = "";


        }

 


resolvido ja desculpe o incomodo.


Resolvido ja apenas estava faltando o where...

 

 

como abaixo.

string sql = "UPDATE CLIENTE SET NOME='" + txtNome.Text + "', ENDERECO='" 
                   + txtEndereco.Text + "', " + "CEP='" + maskCep.Text + "', BAIRRO='" 
                   + txtBairro.Text + "', CIDADE='" + txtCidade.Text + "', " + "UF='" 
                   + txtUf.Text + "', TELEFONE='" + maskFone.Text + ", 'WHERE ID = '" + txtId.Text + "'";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda tem um erro nessa string, após o telefone tem uma virgula e ela tem que ser removida, se não todo telefone atualizado vai entrar com uma virgular a mais.

De:

TELEFONE='" + maskFone.Text + ", 'WHERE ID = '" + txtId.Text + "'";

Para

TELEFONE='" + maskFone.Text + "' WHERE ID = '" + txtId.Text + "'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.