Il ne s'agit pas de garder la connexion ouverte, il suffit d'utiliser le Command Builder, c'est pareil avec MySql je crois.
private MySqlDataAdapter adapt;
private DataSet someDataSet;
someDataSet = new DataSet();
public DataSet GetCustomerData(int customerId)
{
using(MySqlConnection connect = new MySqlConnection(ConnString))
{
connect.Open();
MySqlCommand comm = new MySqlCommand("SELECT * FROM customers WHERE Id = @0", connect);
someDataSet.Tables.Add("CustomersTable");
comm.Parameters.AddWithValue("@0", customerId);
adapt.SelectCommand = comm;
adapt.Fill(someDataSet.Tables["CustomersTable"]);
}
return someDataSet;
}
Maintenant, pour la mise à jour :vous pouvez également utiliser un nouvel adaptateur, mais vous devez ensuite lui donner une commande de sélection, en fonction de laquelle le générateur de commandes effectuera les commandes d'insertion, de mise à jour et de suppression.
public void UpdateTable(DataTable table, int customerId)
{
using (MySqlConnection connect = new MySqlConnection(ConnString))
{
connect.Open();
MySqlCommandBuilder commbuilder = new MySqlCommandBuilder(adapt);
adapt.SelectCommand = new MySqlCommand("SELECT * FROM customers WHERE Id = "+customerId, connect); //or use parameters.addwithvalue
adapt.Update(table);
}
}