Problems when creating crud, select and Insert works, delete and update does not

Asked

Viewed 140 times

1

Good afternoon, I need help with a crud c# here 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!");
                }
            }
        }
  • and what’s the problem? any error message? returns the lines that were changed?

  • I don’t know much about this framework but I believe that for the updates and updates the value of "@Codigocid" should not be "0" but another identifier value like 1 for example, as long as it exists already

1 answer

2


In the method that deletes and updates you are overriding its parameter @CodigoCid always by "0". As it should not exist in the bank never deletes or updates anything.

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

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...
}
  • That’s it, now it’s all working, thank you George, Hug!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.