SQL语句进行数据库备份还原

来源:互联网 发布:java 树深度遍历 编辑:程序博客网 时间:2024/05/05 21:48

 /// <summary>
        /// 备份按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

SqlConnection sqlcon = new SqlConnection(Properties.Settings.Default.ConnectionString);
            sqlcon.Open();
            string CmdStr = "exec master.dbo.xp_cmdshell 'md D:\\DataBackup'";
            SqlCommand cmd = new SqlCommand(CmdStr, sqlcon);
            cmd.ExecuteNonQuery();

            string[] stringSeparators = new string[] { ";" };
            string[] str = Properties.Settings.Default.ConnectionString.Split(stringSeparators, System.StringSplitOptions.RemoveEmptyEntries);
            //string ServerName = str[0].Substring(str[0].IndexOf("=") + 1, str[0].Length - str[0].IndexOf("=") - 1).Trim();
           
            string DataBase = str[1].Substring(str[1].IndexOf("=") + 1, str[1].Length - str[1].IndexOf("=") - 1).Trim();

            cmd.CommandText = @"backup database " + DataBase + " to disk='D:\\DataBackup\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".bak'";
           
            try
            {
                cmd.ExecuteNonQuery();
                //splashScreenManager1.CloseWaitForm();
                MessageBox.Show("备份成功!");
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                //splashScreenManager1.CloseWaitForm();
                MessageBox.Show("数据库备份失败:" + ex.Message);
            }

            sqlcon.Close();
           
        }

}

 

 /// <summary>
        /// 数据库还原
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem6_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            (new DataBackupForm()).ShowDialog();

            string path = @"c:/Test.bak";
            string restore = "restore database Test from disk='" + path + "';";
            SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;");
            SqlCommand cmd = new SqlCommand(restore, con);
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("数据库还原成功!");

            }
            catch (Exception ex)
            {
                cmd.Dispose();
                MessageBox.Show("数据库还原失败:" + ex.Message);
            }
            finally
            {
                con.Close();
            }


        }

 

原创粉丝点击