tomas_rovira 0 Posted March 5, 2020 Report Share Posted March 5, 2020 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"); } Link to post Share on other sites
HappyHippyHippo 1,162 Posted March 5, 2020 Report Share Posted March 5, 2020 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 Portugol Plus Link to post Share on other sites
tomas_rovira 0 Posted March 5, 2020 Author Report Share Posted March 5, 2020 então o que é que eu meto para apagar apenas a linha selecionada? Link to post Share on other sites
HappyHippyHippo 1,162 Posted March 5, 2020 Report Share Posted March 5, 2020 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 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
tomas_rovira 0 Posted March 6, 2020 Author Report Share Posted March 6, 2020 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"); Link to post Share on other sites
HappyHippyHippo 1,162 Posted March 7, 2020 Report Share Posted March 7, 2020 e que valor é te dado por dataGridView1.SelectedRows ? é o identificador do registo a ser removido ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now