C盘备份数据库出错

Backup database in drive C cause an error

我有一个问题。为什么我无法使用 vb.net 在驱动器 c 中备份我的数据库?

这是消息框错误:

我将在 vb.net

中执行的存储过程

BACKUP DATABASE DatabaseNameTest TO DISK = '\DSA02\Users\DSA_02\Source\Sample.BAK'

但是如果我在另一个驱动器上尝试这个:

BACKUP DATABASE DatabaseNameTest TO DISK = '\DSA02\DSA_02\Source\Sample.BAK'

不会报错

那么为什么在c盘我的代码return错误而在另一个盘却没有。 任何人都可以解决或帮助我解决这个问题吗?

------------ 我找到的解决方案---------

注意:不确定这是否是最好的 answer/solution 但现在我可以将备份文件保存在驱动器 c 中。

我在 drive C User 中配置了文件夹,它将保存在那里。示例:C:\User\Destination 我配置 Destination 文件夹

步骤:

Properties->Security Tab->Edit Button->Click Add->Enter object name like "Guest"->Click Check Names->Then OK->Then Click the newly added CompName/Guest field in "Group or Username"->Then Check All the Permission of Guest Except for Deny->Then OK. 然后这将允许您将 drive C 中的文件保存到其 Destination Folder 无需 运行 您的程序作为管理员。

您在上面的消息框中列出了两个目录。既然你提到你在 VB.net 中这样做了,我猜你连接了一个字符串。

如果你做了这样的事情:

BACKUP DATABASE DatabaseNameTest TO DISK = ' C:\Users\DSA_02\Source\Sample.BAK'

你会得到那个错误。注意第一个单引号和 C:\Users 部分之间的 space。

如果您要将一个字符串连接到一个变量,请先尝试将结果输出到 msgbox 以查看它是否连接正确。

您必须以管理员身份打开 Visual Studio 才能执行此操作。 然后,转到项目属性并单击查看 Windows 设置。你应该看到这样的东西:

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

您应该将此声明更改为:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

全部关闭,现在以管理员身份启动。问题是你不能在没有管理员权限的情况下写入 C:/ 目录。