private void btExportMemoryZip_Click(object sender, EventArgs e) { try { SaveFileDialog f = new SaveFileDialog(); f.Filter = "Zip|*.zip"; f.FileName = "ZipTest " + DateTime.Now.ToString("yyyyMMdd HHmmss") + ".zip"; if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } string zipFilePath = f.FileName; string zipFileName = "SqlDump.sql"; using (MemoryStream ms = new MemoryStream()) { using (TextWriter tw = new StreamWriter(ms, new UTF8Encoding(false))) { using (MySqlConnection conn = new MySqlConnection(Program.ConnectionString)) { using (MySqlCommand cmd = new MySqlCommand()) { using (MySqlBackup mb = new MySqlBackup(cmd)) { cmd.Connection = conn; conn.Open(); mb.ExportToTextWriter(tw); conn.Close(); using (ZipStorer zip = ZipStorer.Create(zipFilePath, "MySQL Dump")) { ms.Position = 0; zip.AddStream(ZipStorer.Compression.Deflate, zipFileName, ms, DateTime.Now, "MySQL Dump"); } } } } } } MessageBox.Show("Done."); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }