You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LocalDB连接成功但备份数据库提示不存在的问题求助

问题根源

通过AttachDbFilename连接LocalDB时,数据库的实际名称不一定等于MDF文件名。你能成功连接是因为LocalDB自动附加了该文件,但备份语句里硬编码的[chance_wms_alco]并非附加后数据库的正确名称,所以触发「数据库不存在」异常。

解决步骤

方法一:动态获取当前连接的数据库名

在连接打开后,获取当前数据库的实际名称,替换备份语句中的数据库名:

string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\DataBase\chance_wms_alco.mdf;Integrated Security=True;Connect Timeout=30"; 
string backupPath = @"C:\DataBase"; 
string backupFileName = "backup.bak";        

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // 获取当前连接的数据库名称
    string actualDbName = connection.Database;

    using (SqlCommand command = connection.CreateCommand())
    {
        // 使用实际数据库名执行备份
        command.CommandText = $"BACKUP DATABASE [{actualDbName}] TO DISK = '{backupPath}\\{backupFileName}'";
        try
        {
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Exception : {ex.Message}");
        }
    }
}

方法二:直接备份当前连接的数据库

无需指定数据库名,用CURRENT关键字备份当前连接的数据库:

// 替换原CommandText为以下内容
command.CommandText = $"BACKUP DATABASE CURRENT TO DISK = '{backupPath}\\{backupFileName}'";

额外注意:修复字符串转义问题

C#字符串中反斜杠需转义,要么用双反斜杠\\,要么在字符串前加@符号(如代码中所示),避免路径解析错误。

内容的提问来源于stack exchange,提问作者cheboksari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 16:42:47