zoukankan      html  css  js  c++  java
  • Sql 数据备份及恢复

    private void tlstripBackbase_Click(object sender, EventArgs e)
            {
                string strFilePath = string.Empty;
                string strCmdText = string.Empty;
                    
                //OpenFileDialog fileDialog = new OpenFileDialog();
                FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
                if (folderBrowser.ShowDialog() == DialogResult.OK)
                {
                   // fileDialog.Filter = "备份文件(*.bak)|*.bak|所有文件(*.*)|*.*";
                    strFilePath = folderBrowser.SelectedPath+ "\Coffee Shop.bak";
                    strCmdText= string.Format("backup database [Coffee Shop] to disk ='{0}'WITH INIT", strFilePath);
                }
                try
                {
                    SqlCommand command = new SqlCommand(strCmdText, sqlHelper.getConnection());
                    command.ExecuteNonQuery();
                    MessageBox.Show("备份成功!");
                    sqlHelper.closeConn();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    sqlHelper.closeConn();
                    return;
                }
            }
    
            private void tlstripRestorebase_Click(object sender, EventArgs e)
            {
                string strCmdText = string.Empty;
                string strFilePath = string.Empty;
                string strCon = "server=.;database=model;uid=sa;pwd=test";
                OpenFileDialog fileDialog = new OpenFileDialog();
                if (fileDialog.ShowDialog() == DialogResult.OK)
                {
                    fileDialog.Filter = "备份文件(*.bak)|*.bak|所有文件(*.*)|*.*";
                    strFilePath = fileDialog.FileName;
                    strCmdText = string.Format("Alter database [Coffee Shop] Set Offline With rollback immediate  use master RESTORE DATABASE [Coffee Shop] FROM DISK = '{0}' WITH REPLACE " +
                        "                   Alter database [Coffee Shop] Set Online With Rollback immediate", strFilePath);
                }
                using (SqlConnection connection = new SqlConnection(strCon))
                {
                    connection.Open();
                    try
                    {
                        SqlCommand command = new SqlCommand(strCmdText, connection);
                        command.ExecuteNonQuery();
                        MessageBox.Show("数据还原成功");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        return;
                    }
                }
                
    
    
            }

    1.通过执行Sql语句来实现

    注意,用Sql语句实现备份与还原操作时,最好不要使用需要备份或还原的数据库连接,而使用master,否则可能会出现如下三个问题:(1)超时时间已到。在操作完成之前超时时间已过或服务器未响应。(2)  在向服务器发送请求时发生传输级错误。(provider:共享内存提供程序,error:0-系统无法打开文件。)  (3)从服务器接收结果时发生传输级错误。(provider:共享内存提供程序,error:0   -   系统无法打开文件。) ,如果一定要用这个连接的话,要注意在执行Sql语句前加个Sql语句:use master,这样可能会解决以上问题。
    2、还原或删除sql server数据库时,经常会出现:“因为数据库正在使用,所以无法获得对数据库的独占访问权”,解决方法是在还原语句前执行"Alter database BookShop Set Offline With rollback immediate”,还原语句后执行“Alter database BookShop Set Online With Rollback immediate”。
     
     
     
  • 相关阅读:
    CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?
    贝塞尔曲线
    A little composer
    ABAQUS操作笔记
    ABAQUS薄板实例
    引用
    引用、重载、递归概念及应用
    Photoshop图片处理-云毕业照
    图片存储大小更改
    论文公式之“公式居中,序号在右”
  • 原文地址:https://www.cnblogs.com/wenjie0904/p/12857951.html
Copyright © 2011-2022 走看看