sql >> データベース >  >> RDS >> Mysql

DataTableに加えた変更を、取得したテーブルにコミットするにはどうすればよいですか?

    接続を開いたままにすることではなく、コマンドビルダーを使用するだけで、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;
       }
    

    更新のために:新しいアダプタを使用することもできますが、コマンドビルダーが挿入、更新、および削除コマンドを実行することに基づいて、選択コマンドを指定する必要があります。

        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. ピボット動的列、集計なし

    2. Oracleの既存のテーブルに自動インクリメントの主キーを追加します

    3. ランダムな時間に非常に長いクエリ終了ステップ

    4. ファイル全体をメモリにロードせずに巨大なファイルをBLOB(Oracle)に挿入するにはどうすればよいですか?