【问题标题】:How to restore a SQL Server 2012 database .bak file in C#?如何在 C# 中恢复 SQL Server 2012 数据库 .bak 文件?
【发布时间】:2015-04-19 00:58:59
【问题描述】:

我在 Windows 窗体中开发了一个 MIS,我在其中备份了我的 SQL Server 2012 数据库,但我无法恢复备份 (.bak) 文件。

这是我的代码:

private void buttonRestore_Click(object sender, EventArgs e)
{
    try
    {
        openFileDialog1.Filter = "Backup File |*.bak";

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            string sql = "Alter Database BOQ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;";
            sql += "Restore Database BOQ FROM DISK ='" + openFileDialog1.FileName + "' WITH REPLACE;";

            SqlConnection con = new SqlConnection("Data Source=.; Initial Catalog=BOQ;Integrated Security=True");
            SqlCommand command = new SqlCommand(sql,con);

            con.Open();
            command.ExecuteNonQuery();

            MessageBox.Show("Database Recovered Successfully!");
            con.Close();
            con.Dispose();
        }
    }
    catch (Exception ex) 
    { 
         MessageBox.Show(ex.Message); 
    }
}

但我收到此错误:

【问题讨论】:

    标签: c# sql-server winforms login


    【解决方案1】:

    不能连接到您的数据库BOQ,然后在其上恢复.bak

    "Data Source=.; Initial Catalog=BOQ;Integrated Security=True"
                                    ****
    

    您需要连接到master 数据库,然后然后您可以恢复您的BOQ 数据库:

    "Data Source=.; Initial Catalog=master;Integrated Security=True"
                                    *******
    

    【讨论】:

    • 我知道这是一篇旧帖子,但我不知道如何先连接到主数据库,然后再连接到要恢复的数据库?一些澄清会很棒。谢谢
    • @PeterJ:只需使用我在回答中显示的 second 连接字符串连接到master,当您完成数据库恢复后,关闭该连接并使用 first 连接字符串连接到您要使用的实际数据库(以及您刚刚恢复的数据库)
    • 哦,好吧,这很有道理。谢谢一百万,marc_s!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多