sql >> Databáze >  >> RDS >> Mysql

Jak potvrdím změny, které jsem provedl v DataTable, do tabulky, ze které jsem ji převzal?

Nejde o to udržovat připojení otevřené, stačí použít Command Builder, věřím, že je to stejné s MySql.

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

Nyní k aktualizaci:můžete použít i nový adaptér, ale pak mu musíte zadat příkaz select, na základě kterého příkazový tvůrce vytvoří příkazy Insert, Update a Delete.

    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. MariaDB:Mohu načíst duplicitní názvy sloupců bez použití „AS“

  2. Jak vytvořit motor na „související otázky“?

  3. Cloud9 postgres

  4. Spring Boot:Jdbc javax.net.ssl.SSLEException:uzavření příchozího před přijetím close_notify od partnera