C # back up and restore the MySql database (run the cmd command)

Source: Internet
Author: User

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

}

}
}

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.