Call mysqldump, a MySql tool.
Class Cmd to call the cmd command,
The Directory of the process to be started is the directory of mysql's automatic backup and restoration database tool mysqldump and mysql. Of course, this method can execute other command line tools.
Using System;
Using System. Collections. Generic;
Using System. Text;
Using System. Diagnostics;
Public class Cmd
{
/// <Summary>
/// Execute the Cmd command
/// </Summary>
/// <Param name = "workingDirectory"> directory of the process to be started </param>
/// <Param name = "command"> command to be executed </param>
Public static void StartCmd (String workingDirectory, String command)
{
Process p = new Process ();
P. StartInfo. FileName = "cmd.exe ";
P. StartInfo. WorkingDirectory = workingDirectory;
P. StartInfo. UseShellExecute = false;
P. StartInfo. RedirectStandardInput = true;
P. StartInfo. RedirectStandardOutput = true;
P. StartInfo. RedirectStandardError = true;
P. StartInfo. CreateNoWindow = true;
P. Start ();
P. StandardInput. WriteLine (command );
P. StandardInput. WriteLine ("exit ");
}
}
Backup method:
Using System;
Using System. Collections. Generic;
Using System. ComponentModel;
Using System. Data;
Using System. Drawing;
Using System. Text;
Using System. Windows. Forms;
Using System. IO;
Using System. Diagnostics;
Using System. Configuration;
Using MDRClient. DataAccess;
Namespace MDRClient
{
Public partial class DataBackup: Form
{
Public DataBackup ()
{
InitializeComponent ();
}
Private void btnBackup_Click (object sender, EventArgs e)
{
Try
{
// String command = "mysqldump -- quick -- host = localhost -- default-character-set = gb2312 -- lock-tables -- verbose -- force -- port = port -- user = username -- password = password Database Name-r backup address ";
// Build the executed command
StringBuilder sbcommand = new StringBuilder ();
StringBuilder sbfileName = new StringBuilder ();
SbfileName. appendFormat ("{0}", DateTime. now. toString ()). replace ("-",""). replace (":",""). replace ("","");
String fileName = sbfileName. ToString ();
SaveFileDialog saveFileDialog = new SaveFileDialog ();
SaveFileDialog. AddExtension = false;
SaveFileDialog. CheckFileExists = false;
SaveFileDialog. CheckPathExists = false;
SaveFileDialog. FileName = fileName;
If (saveFileDialog. ShowDialog () = DialogResult. OK)
{
String directory = saveFileDialog. FileName;
Sbcommand. appendFormat ("mysqldump -- quick -- host = localhost -- default-character-set = gbk -- lock-tables -- verbose -- force -- port = port number -- user = user name -- password = password Database Name -r \ "{0 }\"", directory );
String command = sbcommand. ToString ();
// Obtain the path of mysqldump.exe.
String appDirecroty = System. Windows. Forms. Application. StartupPath + "\\";
Cmd. StartCmd (appDirecroty, command );
MessageBox. Show (@ "the database has been successfully backed up to" + directory + "file", "prompt", MessageBoxButtons. OK, MessageBoxIcon. Information );
}
}
Catch (Exception ex)
{
MessageBox. Show ("database backup failed! ");
}
}
}
}
The restoration method calls mysql, the built-in mysql tool. During restoration, note that when the path of the selected file is located, if the file name contains spaces
Exception. Therefore, double quotation marks (") are added to the file path name ""
Using System;
Using System. Collections. Generic;
Using System. ComponentModel;
Using System. Data;
Using System. Drawing;
Using System. Text;
Using System. Windows. Forms;
Using System. IO;
Using System. Diagnostics;
Using System. Configuration;
Using MDRClient. DataAccess;
Namespace MDRClient
{
Public partial class DataRestore: Form
{
Public DataRestore ()
{
InitializeComponent ();
}
Private void btnRestore_Click (object sender, EventArgs e)
{
// String s = "mysql -- port = port number -- user = user name -- password = password Database Name <restore file path ";
Try
{
StringBuilder sbcommand = new StringBuilder ();
OpenFileDialog openFileDialog = new OpenFileDialog ();
If (openFileDialog. ShowDialog () = DialogResult. OK)
{
String directory = openFileDialog. FileName;
// Add "" after the file path to avoid space exceptions
Sbcommand. appendFormat ("mysql -- host = localhost -- default-character-set = gbk -- port = port number -- user = username -- password = password database <\" {0 }\"", directory );
String command = sbcommand. ToString ();
// Obtain the path of mysql.exe
String appDirecroty = System. Windows. Forms. Application. StartupPath + "\\";
DialogResult result = MessageBox. Show ("Do you really want to overwrite the previous database? The previous database data will be lost !!! "," Warning ", MessageBoxButtons. YesNo, MessageBoxIcon. Warning );
If (result = DialogResult. Yes)
{
Cmd. StartCmd (appDirecroty, command );
MessageBox. Show ("the database is restored successfully! ");
}
}
}
Catch (Exception ex)
{
MessageBox. Show ("database restoration failed! ");
}
}
}
}