[英]Using SMO to backup SQL Server 2005 Database with C# Windows Forms Application, Back up failed
这是我用来备份数据库的代码,我按照本教程操作 ,如您所见,这些代码是相同的。 我填写变量后出现错误。 我得到的错误是
服务器“ RITZEL-PC \\ SQLEXPRESS”的备份失败。
备份功能:
public void BackupDatabase(String databaseName, String userName, String password, String serverName, String destinationPath)
{
Backup sqlBackup = new Backup();
sqlBackup.Action = BackupActionType.Database;
sqlBackup.BackupSetDescription = "ArchiveDataBase:" + DateTime.Now.ToShortDateString();
sqlBackup.BackupSetName = "Archive";
sqlBackup.Database = databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(destinationPath, DeviceType.File);
ServerConnection connection = new ServerConnection(serverName, userName, password);
Server sqlServer = new Server(connection);
Database db = sqlServer.Databases[databaseName];
sqlBackup.Initialize = true;
sqlBackup.Checksum = true;
sqlBackup.ContinueAfterError = true;
sqlBackup.Devices.Add(deviceItem);
sqlBackup.Incremental = false;
sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;
sqlBackup.FormatMedia = false;
sqlBackup.SqlBackup(sqlServer);
}
点击按钮
private void BackUp_Btn_Click(object sender, EventArgs e)
{
String databaseName = @"D:\MY_THESIS\WORKING FILES\NNIT-RMS.mdf";
String userName = "NNIT-Admin";
String password = "password";
String serverName = @"RITZEL-PC\SQLEXPRESS";
String destinationPath = @"D:\";
BackupDatabase(databaseName,userName,password,serverName,destinationPath);
}
数据库信息我还不能发布图像,但是我上传了一个屏幕截图。 看到这里: http : //img268.imageshack.us/img268/9250/sqlg.jpg
为了备份数据库,进程SQL Server根据需要运行,以对备份目标文件夹具有正确的文件夹权限。
根据我的经验,除非SQL Server进程以本地管理员身份运行,否则它没有写根目录权限。
如果打开SSMS并尝试将数据库备份到目标路径,则可能会遇到相同的问题。
尝试将备份文件夹更改为驱动器根目录或“我的文档”文件夹以外的其他文件夹。
不要再次分配字符串值,只需删除它们并按以下方式调用备份:
BackupSqlDatabase("YourDataBaseName","sa","password","ServerName","C:\\YourDataBaseName.bak");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.