1 pièce(s) jointe(s)
Supprimer une ligne sélectionné DataGridView et MySql
Bonjour tout le monde,
J'essaye depuis je ne sais combien de temps de supprimer une ligne dans une "datagridview" en cliquant sur une cellule et ensuite sur le bouton "Delete", mais en vain j'arrive a supprimer dans la datagridview mais pas sur ma "base de donnée"
* Dans la fonction supprimé, il y a une ligne commenté car je peux également supprimer une ligne via le ID en le tapant directement et en cliquant sur "Delete" ( Qui fonctionne )
Merci pour tous ceux qui prendront le temps de regarder !!!!!!!
Un Screenshot de mon micro Programme :
Pièce jointe 517581
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| // Ajout de la librairie MYSQL, ne pas oublier d'ajouter la reference MYSql.Data
using MySql.Data.MySqlClient;
using System;
using System.Data;
using System.Windows.Forms;
namespace TestBDD
{
public partial class Form1 : Form
{
// Il faut rentrer les informations du serveur ou la base de donnees est hebergee.
MySqlConnection connection = new MySqlConnection("datasource=localhost; database=test; port=3306; username=root; password= ");
MySqlCommand command;
public Form1()
{
InitializeComponent();
}
// Creation d'une fonction pour verifier si la connection est ouverte, et si elle ne l'est pas alors de l'ouvrir
public void OpenConnection()
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
}
// Creation d'une fonction pour verifier si la connection est fermee, et si elle ne l'est pas alors de fermer
public void CloseConnection()
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
// Creation d'une autre fonction pour envoyer des messages si les donnees on bien etes inserees, modifiees etc...
public void ExecuteQuery(string query)
{
try
{
OpenConnection();
command = new MySqlCommand(query, connection);
if (command.ExecuteNonQuery() == 1)
{
MessageBox.Show("Query execute");
}
else
{
MessageBox.Show("Query pas execute");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
CloseConnection();
}
}
// Insertion des donnees dans la base de donnees.
private void BtnInsert_Click(object sender, EventArgs e)
{
string insertQuery = "INSERT INTO testdb(Nom,Age) VALUES('" + TBoxNom.Text + "','" + int.Parse(TBoxAge.Text) + "')";
ExecuteQuery(insertQuery);
RefreshDataGridView(dataGridView);
}
// MAJ des donnees dans la base de donnees.
private void BtnUpdate_Click(object sender, EventArgs e)
{
string updateQuery = "UPDATE testdb SET Nom='" + TBoxNom.Text + "', Age='" + int.Parse(TBoxAge.Text) + "' WHERE ID = " + int.Parse(TBoxId.Text);
ExecuteQuery(updateQuery);
RefreshDataGridView(dataGridView);
}
// Suppression des donnees dans la base de donnees.
private void BtnDelete_Click(object sender, EventArgs e)
{
int rowIndex = dataGridView.CurrentCell.RowIndex;
dataGridView.Rows.RemoveAt(rowIndex);
//string deleteQuery = "DELETE FROM testdb WHERE ID =" + int.Parse(TBoxId.Text);
string deleteQuery = "DELETE FROM testdb WHERE ID =" + rowIndex;
ExecuteQuery(deleteQuery);
RefreshDataGridView(dataGridView);
}
// Fonction de raffraichissement de la datagridView
public void RefreshDataGridView(DataGridView dataGridView)
{
try
{
if (connection.State == ConnectionState.Closed)
connection.Open();
MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM testdb", connection);
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
dataGridView.DataSource = dataTable;
}
catch (MySqlException exception)
{
MessageBox.Show(exception.ToString());
}
finally
{
connection.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
RefreshDataGridView(dataGridView);
}
}
} |