sql >> Database >  >> RDS >> Mysql

Hoe kan ik de wijzigingen die ik heb aangebracht in een gegevenstabel vastleggen in de tabel waaruit ik deze heb gepakt?

Het gaat er niet om de verbinding open te houden, je moet gewoon de Command Builder gebruiken, het is hetzelfde met MySql geloof ik.

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;
   }

Nu voor het updaten:je zou ook een nieuwe adapter kunnen gebruiken, maar dan moet je het een select commando geven, op basis daarvan zal de commandbuilder de Insert, Update en Delete commando's maken.

    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);
        }
    }


  1. Rails:Postgres-toestemming geweigerd om database op rake te maken db:create:all

  2. Meerdere rijen enkele tabel bijwerken

  3. SSL inschakelen in PostgreSQL

  4. Java + SSH + Postgres