2011-11-13 135 views
1

我正在使用此代碼從.mdf文件備份數據庫。備份服務器'xxxxx/SQLEXPRESS'失敗

Backup databaseBackup = new Backup(); 
databaseBackup.Action = BackupActionType.Database; 
databaseBackup.Database = CvVariables.Catalog; 
databaseBackup.Devices.Add(new BackupDeviceItem(new NecessaryFunction().MsSqlBackupFileName(this.backupTextboxPath.Text), DeviceType.File)); 
Server databaseServer = new Server(@".\SQLEXPRESS"); 
MessageBox.Show(databaseServer.ToString()); 
databaseBackup.SqlBackup(databaseServer); 

在我的開發人員PC上,這段代碼工作正常。但我的client`s PC上拋出此異常:

備份失敗,服務器「XXXXX/SQLEXPRESS」
Microsoft.SqlServer.Management.Common.ExecutionFailureException:發生異常時執行Transact-SQL語句或批量。 ---> System.Data.SqlClient.SqlException:
數據庫'Cafeteria_Vernier_db'不存在。確保名稱正確輸入 。
BACKUP DATABASE正在異常終止。 在Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction 動作,對象execObject,數據集fillDataSet,布爾 catchException)
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 的SqlCommand,ExecutionTypes executionType)
---內部異常堆棧跟蹤的結尾---
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 的SqlCommand,ExecutionTypes executionType)
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (StringCollection sqlCommands,ExecutionT YPES executionType)
在Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection 查詢)
在Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(服務器 服務器,StringCollection查詢)
在Microsoft.SqlServer .Management.Smo.Backup.SqlBackup(服務器srv)

我在做什麼錯?

+1

它可以找到數據庫'Cafeteria_Vernier_db'。你確定名稱和數據庫? –

回答

0

看起來您在客戶端PC上執行的安全上下文與開發人員PC上的不同。驗證您的客戶端PC憑據是否可以訪問自助餐廳數據庫,否則會得到相同的消息以致無法找到(因爲它無法訪問它)。

我的猜測是客戶端SQL Server登錄在Cafeteria_Vernier_db數據庫中沒有映射數據庫用戶。