【问题标题】:How to create a SqlServer database backup with .Net?如何使用 .Net 创建 Sql Server 数据库备份?
【发布时间】:2011-07-17 06:15:12
【问题描述】:

我想用这个 C# 代码做一个数据库备份:

connect = new SqlConnection(con);
connect.Open();

// Execute SQL
SqlCommand command = new SqlCommand
(
    @"backup database MY_database to disk='d:\SQLBackup\wcBackUp1.bak' with init, stats=10",
    connect
);

command.ExecuteNonQuery();
connect.Close();

当我运行它时,会显示以下错误消息:

无法打开备份设备“d:\SQLBackup\wcBackUp1.bak”。 操作系统错误3(系统找不到指定的路径)。

如果我将路径更改为d:\wcBackUp1.bak,它似乎可以,没有错误,但文件不存在,它没有生成。

如果我在 SQL 中运行命令,我会收到消息说它已 100% 处理,但我没有看到该文件。

有人可以帮帮我吗?

【问题讨论】:

    标签: c# sql sql-server winforms backup


    【解决方案1】:

    基本上,运行 SQL Server 服务的 Windows 帐户必须对指定文件夹具有写入权限。

    您可以通过查看 SQL Server 配置管理器中的 SQL Server 服务(查看登录身份列)来检查这是什么帐户

    使用资源管理器 -> 右键单击​​文件夹 -> 属性 -> 安全 -> 高级 -> 有效权限检查该帐户对目标文件夹的实际权限。

    检查这是否是问题的一种方法是更改​​您的代码以备份到您的 SQL 实例的备份文件夹,该文件夹的权限可能是正确的。例如

    C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup
    

    【讨论】:

      【解决方案2】:

      有两件事要检查。

      Sql 服务可能无权访问 d:\sqlbackup 文件夹。旧 Sql 安装过去默认安装具有对机器的完全访问权限的服务,但较新的实例加强了这一点。您可以尝试将路径更改为存储默认备份的目录。

      其次,如果 sql server 和你运行这个程序的机器不在同一台机器上,那么你必须记住 D: 将是 sql server 上的 D: 而不是你的本地机器

      【讨论】:

        【解决方案3】:

        确保位置“d:\SQLBackup\”存在于您的数据库服务器中,而不是您的客户端计算机上。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多