Problems creating crud, select and insert works, delete and update does not

1

Good afternoon, I need help with a crud c # This is the code where the class is, the strange thing is that select and insert are working normally, the problem is in update and delete

   //incluirCidade
        public void incluirCidade()
        {
            SqlConnection conn;
            SqlCommand comm;
            bool bIsOperationOK = true;

            // Lê a string q representa os dados da conexão
            // contidos no arquivo app.config
            string connectionString = Properties.Settings.Default.TGCConnectionString;

            // Inicializa a conexão com o banco de dados
            conn = new SqlConnection(connectionString);

            //Cria uma objeto do tipo comando passando como parametro a string sql e a string de conexão
            comm = new SqlCommand(
                "INSERT INTO Cidades (NomeCid, UFCid, CEPCid) " +
                "VALUES (@NomeCid, @UFCid, @CEPCid)", conn);

            //Adicionando o valor das textBox nos parametros do comando
            comm.Parameters.Add(new SqlParameter("@CodigoCid", "0"));
            comm.Parameters.Add(new SqlParameter("@NomeCid", this.NomeCid));
            comm.Parameters.Add(new SqlParameter("@UFCid", this.UfCid));
            comm.Parameters.Add(new SqlParameter("@CEPCid", this.CEPCid));


            // Usa tratamento de excessão para se certificar que a operação 
            // foi bem executada. Senão, exibe mensagem de erro para o usuário.
            try
            {
                try
                {
                    // Abre a Conexão com o BD
                    conn.Open();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                }

                try
                {
                    // Executa comando SQL
                    comm.ExecuteNonQuery();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                    this.setMensagem("Não foi possível concluir o cadastro!");
                }
            }
            catch { }
            finally
            {
                // Fecha a Conexão com o BD
                conn.Close();

                if (bIsOperationOK == true)
                {
                    this.setMensagem("Cidade adicionada com sucesso!");
                }
            }
        }

        //alterarCidade
        public void alterarCidade()
        {
            SqlConnection conn;
            SqlCommand comm;
            bool bIsOperationOK = true;

            // Lê a string q representa os dados da conexão
            // contidos no arquivo app.config
            string connectionString = Properties.Settings.Default.TGCConnectionString;

            // Inicializa a conexão com o banco de dados
            conn = new SqlConnection(connectionString);

            //Cria uma objeto do tipo comando passando como parametro a string sql e a string de conexão
            comm = new SqlCommand(
                "UPDATE Cidades SET NomeCid=@NomeCid, UFCid=@UFCid, CEPCid=@CEPCid " +
                "WHERE CodigoCid=@CodigoCid", conn);

            /* //cria um comando SQL para inclusão de dados da tabela;
            comm = new SqlCommand(
                "UPDATE Cidades SET NomeCid=@NomeCid, UFCid=@UFCid, CEPCid=@CEPCid " +
                "WHERE NomeCid=@NomeCid", conn);
*/

            //Adicionando o valor das textBox nos parametros do comando
            comm.Parameters.Add(new SqlParameter("@CodigoCid", "0"));
            comm.Parameters.Add(new SqlParameter("@NomeCid", this.NomeCid));
            comm.Parameters.Add(new SqlParameter("@UFCid", this.UfCid));
            comm.Parameters.Add(new SqlParameter("@CEPCid", this.CEPCid));


            // Usa tratamento de excessão para se certificar que a operação 
            // foi bem executada. Senão, exibe mensagem de erro para o usuário.
            try
            {
                try
                {
                    // Abre a Conexão com o BD
                    conn.Open();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                }

                try
                {
                    // Executa comando SQL
                    comm.ExecuteNonQuery();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                    this.setMensagem("Não foi possível concluir a alteração!");
                }
            }
            catch { }
            finally
            {
                // Fecha a Conexão com o BD
                conn.Close();

                if (bIsOperationOK == true)
                {
                    this.setMensagem("Cidade alterada com sucesso!");
                }
            }
        }//fim alterar cidade

        //exluirCidade
        public void excluirCidade()
        {
            SqlConnection conn;
            SqlCommand comm;
            bool bIsOperationOK = true;

            // Lê a string q representa os dados da conexão
            // contidos no arquivo app.config
            string connectionString = Properties.Settings.Default.TGCConnectionString;

            // Inicializa a conexão com o banco de dados
            conn = new SqlConnection(connectionString);

            //Cria uma objeto do tipo comando passando como parametro a string sql e a string de conexão
            comm = new SqlCommand(
                "DELETE FROM Cidades " +
                "WHERE CodigoCid=@CodigoCid", conn);

            /* //cria um comando SQL para inclusão de dados da tabela;
            comm = new SqlCommand(
                "UPDATE Cidades SET NomeCid=@NomeCid, UFCid=@UFCid, CEPCid=@CEPCid " +
                "WHERE NomeCid=@NomeCid", conn);
*/

            //Adicionando o valor das textBox nos parametros do comando
            comm.Parameters.Add(new SqlParameter("@CodigoCid", "0"));
            comm.Parameters.Add(new SqlParameter("@NomeCid", this.NomeCid));
            comm.Parameters.Add(new SqlParameter("@UFCid", this.UfCid));
            comm.Parameters.Add(new SqlParameter("@CEPCid", this.CEPCid));


            // Usa tratamento de excessão para se certificar que a operação 
            // foi bem executada. Senão, exibe mensagem de erro para o usuário.
            try
            {
                try
                {
                    // Abre a Conexão com o BD
                    conn.Open();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                }

                try
                {
                    // Executa comando SQL
                    comm.ExecuteNonQuery();
                }
                catch (Exception error)
                {
                    bIsOperationOK = false;
                    this.setMensagem("Não foi possível excluir!");
                }
            }
            catch { }
            finally
            {
                // Fecha a Conexão com o BD
                conn.Close();

                if (bIsOperationOK == true)
                {
                    this.setMensagem("Cidade excluída com sucesso!");
                }
            }
        }
    
asked by anonymous 12.10.2018 / 19:56

1 answer

2

In the method that deletes and does update you are replacing your parameter @CodigoCid always with "0". Since it should not exist in the database, it never deletes or updates anything.

To work it should have a parameter in your method that should receive the code (PK) of the city that will be deleted. I made the fix on the method of exclusion:

public void excluirCidade(int codigoCidade)
{
    SqlConnection conn;
    SqlCommand comm;
    bool bIsOperationOK = true;
    string connectionString = Properties.Settings.Default.TGCConnectionString;
    conn = new SqlConnection(connectionString);
    comm = new SqlCommand(
        "DELETE FROM Cidades " +
        "WHERE CodigoCid=@CodigoCid", conn);

    comm.Parameters.Add(new SqlParameter("@CodigoCid", codigoCidade));
    comm.Parameters.Add(new SqlParameter("@NomeCid", this.NomeCid));
    comm.Parameters.Add(new SqlParameter("@UFCid", this.UfCid));
    comm.Parameters.Add(new SqlParameter("@CEPCid", this.CEPCid));

    //Restante do seu código...
}
    
12.10.2018 / 22:09