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

// 执行创建数据库操作

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();

}

原文地址:https://www.cnblogs.com/zhangruisoldier/p/4613181.html