2013-01-11 55 views
0

这是我在之前的问题中的后续问题。备份数据库时出现操作系统错误3

我想采取我的SQL Server数据库的备份。这里是代码,用于C#中的备份。

userConn = new SqlConnection(userdatabase); 
userConn.Open(); 

string UserString; 

UserString = "BACKUP DATABASE @DBName TO DISK = @FilePath"; 

String destPath = DestDirectory + "\\UserDataTable.bak"; 
SqlCommand cmd = new SqlCommand(UserString, userConn); 

cmd.Parameters.AddWithValue("@dbName", userConn.Database); 
cmd.Parameters.AddWithValue("@FilePath", destPath); 

cmd.ExecuteNonQuery(); 
cmd.Dispose(); 

然而,它抛出一个SQLException,

“无法打开备份设备 。 'd:\簿记\数据库\ 11_01_2013_21_15 \数据库\ UserDataTable.bak' 操作系统错误3(失败检索此错误的文本 原因:15105)。BACKUP DATABASE正在异常终止。“

任何想法,有什么可能是错的?

非常感谢您的时间和您的帮助。

+0

什么用户运行此程序? – cheesemacfly

+0

**可能的重复** http://stackoverflow.com/questions/2398385/sql-server-2008-backup-error-operating-system-error-5failed-to-retrieve-text – Mate

+1

您是否尝试运行查询' BACKUP DATABASE @DBName TO DISK ='D:\ BookKeeping \ Database \ 11_01_2013_21_15 \ Database \ UserDataTable.bak''在服务器上,使用例如SSMS? –

回答

4

“操作系统错误3”表示找不到目录。 SQL不会为你创建备份目录;您必须在运行备份命令之前手动创建它。

0

确保您的SqlServer和您要创建备份的位置是相同的系统。如果您远程使用sqlServer(不在您的系统中),那么您无法在您的机器上创建备份,或者您也无法从机器上恢复数据库.bak

+0

请首先看到[如何回答](https://stackoverflow.com/help/how-to-answer) –

+0

我不明白我写错了什么。但是我仍然想对这个建议表示感谢。我会读这个。 非常感谢。 –

+0

这个问题已经回答了,显然,你可以在这里添加你的答案。但是在回答之前你需要了解一些观点。首先,不要添加之前添加了相同代码或建议的答案。其次,如果用户非常具体地询问了问题以及他需要解决什么问题,请不要添加过于复杂的答案。第三,如果您想就回答或问题提出任何建议,您可以添加评论。 –