Jump to content
tomas_rovira

Eliminar uma linha na base de dados atraves do datagridview

Recommended Posts

tomas_rovira

Olá,

Fiz um código para eliminar uma linha na base de dados atraves do datagridview, porém apago todos os dados. 

O que mudo no código para eliminar apenas a linha que pretendo?

            //definir a query
            string query = "DELETE FROM produtos";
            //abrir a ligação à BD
            if (a.open_connection())
            {
                //criar o comando e associar a query com a ligação através do construtor
                MySqlCommand cmd = new MySqlCommand(query, a.connection);
                if (dataGridView1.SelectedRows.Count == 0)
                {
                    MessageBox.Show("Nenhum registro selecionado", "Atenção");
                    return;
                }
                else
                    dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
                //executar o comando
                cmd.ExecuteNonQuery();
                //fechar a ligação à BD
                a.close_connection();
            }
            MessageBox.Show("Dados eliminados com sucesso");
        }

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

bem, mas é isso que estás a dizer ao determinar que a instrução a ser executada é string query = "DELETE FROM produtos";

não estás a definir qual o registo que pretendes eliminar


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tomas_rovira

então o que é que eu meto para apagar apenas a linha selecionada?

Share this post


Link to post
Share on other sites
HappyHippyHippo

necessitas de obter o identificador do registo que se pretende eliminar e adicionar essa condição ao SQL a executar.

exemplo : DELETE FROM produtos WHERE id = 123

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tomas_rovira

Agora meti assim o a linha de código

"DELETE FROM produtos WHERE cod_produto=" + dataGridView1.SelectedRows

e deu-me o seguinte erro

Citação

MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.DataGridViewSelectedRowCollection' at line 1'

código completo:

//definir a query
            string query = "DELETE FROM produtos WHERE cod_produto=" + dataGridView1.SelectedRows;
            //abrir a ligação à BD
            if (a.open_connection())
            {
                //criar o comando e associar a query com a ligação através do construtor
                MySqlCommand cmd = new MySqlCommand(query, a.connection);
                
                //executar o comando
                cmd.ExecuteNonQuery();
                //fechar a ligação à BD
                a.close_connection();
            }
            MessageBox.Show("Dados eliminados com sucesso");

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

e que valor é te dado por  dataGridView1.SelectedRows ?

é o identificador do registo a ser removido ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.