C# MySQL数据库的备份 还原 初始化

时间:2022-07-30 10:10:54

// 执行创建数据库操作

this.GetExecute(G_Con, "create database if not exists NEWDB");

this.sqlAddress = " -h " + IP + " -u" + User + " -p" + Password + " NEWDB ";

// 数据库的备份

private void btn_Dump_Click(object sender, EventArgs e)

{

using (SaveFileDialog sfd = new SaveFileDialog())

{

sfd.Filter = "数据库文件|*.sql";

sfd.FilterIndex = 0;

sfd.RestoreDirectory = true;

sfd.FileName = "BackUp" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".sql";

if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

string filePath = sfd.FileName;

string cmd = "mysqldump " + sqlAddress + " > \"" + filePath + "\"";

string result = RunCmd(cmd);

if (result.Trim() == "")

{

MessageBox.Show("数据库备份成功!", "CMS", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

else

{

MessageBox.Show(result, "CMS", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

}

//数据库的还原 // 还原数据库

private void btn_Import_Click(object sender, EventArgs e)

{

if (this.tb_Path.Text.Trim() == "")

{

MessageBox.Show("请选择要恢复的文件!", "CMS", MessageBoxButtons.OK, MessageBoxIcon.Information);

return;

}

//this.GetExecute(G_Con, "create database if not exists clothes");

string filePath = this.tb_Path.Text.Trim();

string cmd = "mysql " + sqlAddress + " < \"" + filePath + "\"";     string result = RunCmd(cmd);

if (result.Trim() == "")

{

MessageBox.Show("数据库恢复成功!", "CMS", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

else

{

MessageBox.Show(result, "CMS", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

// 命令行操作

private string RunCmd(string command)

{

//例

Process     Process p = new Process();

p.StartInfo.FileName = "cmd.exe";      //确定程序名

p.StartInfo.Arguments = "/c " + command;    //确定程式命令行

p.StartInfo.UseShellExecute = false;        //Shell的使用

p.StartInfo.RedirectStandardInput = true;   //重定向输入

p.StartInfo.RedirectStandardOutput = true; //重定向输出

p.StartInfo.RedirectStandardError = true;   //重定向输出错误

p.StartInfo.CreateNoWindow = true;          //设置置不显示示窗口

p.Start();   //00

p.StandardInput.WriteLine(command);       //也可以用这种方式输入入要行的命令

p.StandardInput.WriteLine("exit");        //要得加上Exit要不然下一行程式

//p.WaitForExit();

//p.Close();

//return p.StandardOutput.ReadToEnd();

//输出出流取得命令行结果果

return p.StandardError.ReadToEnd();

}