错误:RESTORE无法处理数据库'Test_DB',因为此会话正在使用它

 于志军贵冰卿 发布于 2023-02-11 18:22

场景:

我正在使用SQL Server 2008 R2数据库服务器处理C#windows窗体应用程序.所有事情都进展顺利,即使我能够创建数据库备份但是当我以编程方式恢复它时它会给我错误"RESTORE无法处理数据库"Test_DB '因为它正在被这个会话使用.建议在执行此操作时使用master数据库.RESTORE DATABASE异常终止. 这是我的备份和恢复程序

          //   back up code

        try
        {
            SaveFileDialog sd = new SaveFileDialog();
            sd.Filter = "SQL Server database backup files|*.bak";
            sd.Title = "Create Database Backup";


            if (sd.ShowDialog() == DialogResult.OK)
            {
                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
                {

                    string sqlStmt = string.Format("backup database Test_DB to disk='{0}'", sd.FileName);
                    using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
                    {
                        conn.Open();
                        bu2.ExecuteNonQuery();
                        conn.Close();

                        DevComponents.DotNetBar.MessageBoxEx.Show("Backup Created Sucessfully");
                    }

                }
            }
        }

        catch (Exception)
        {
            MessageBox.Show("Backup Not Created");
        }
 // Restore backup Code


        try
        {
            OpenFileDialog od = new OpenFileDialog();
            od.Filter = "SQL Server database Restore files|*.bak";
            od.Title = "Restore Database Backup";


            if (od.ShowDialog() == DialogResult.OK)
            {
                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
                {
                        string sqlStmt = string.Format("Restore database Test_DB from disk='{0}'", od.FileName);
                        using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
                        {
                            conn.Open();
                            bu2.ExecuteNonQuery();
                            conn.Close();
                            DevComponents.DotNetBar.MessageBoxEx.Show("Database Retored Sucessfully", "Success Message!");
                        }

                }
            }
        }

        catch (Exception)
        {
            MessageBox.Show("Database didn't Restore","Error Message!");
        }

我感谢任何机构提供的任何帮助.谢谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有