tomas_rovira Posted March 5, 2020 at 11:42 AM Report Share #617496 Posted March 5, 2020 at 11:42 AM 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 comment Share on other sites More sharing options...
HappyHippyHippo Posted March 5, 2020 at 03:56 PM Report Share #617503 Posted March 5, 2020 at 03:56 PM 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 comment Share on other sites More sharing options...
tomas_rovira Posted March 5, 2020 at 06:15 PM Author Report Share #617507 Posted March 5, 2020 at 06:15 PM então o que é que eu meto para apagar apenas a linha selecionada? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 5, 2020 at 07:51 PM Report Share #617509 Posted March 5, 2020 at 07:51 PM 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 comment Share on other sites More sharing options...
tomas_rovira Posted March 6, 2020 at 10:01 AM Author Report Share #617512 Posted March 6, 2020 at 10:01 AM 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 comment Share on other sites More sharing options...
HappyHippyHippo Posted March 7, 2020 at 09:13 AM Report Share #617517 Posted March 7, 2020 at 09:13 AM 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 comment Share on other sites More sharing options...
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