SQLDMO备份数据库,如何去除备份路径里的空格
来源:互联网 发布:淘宝手机轮播图片尺寸 编辑:程序博客网 时间:2024/04/29 20:14
大家都知道 使用 SQLDMO 备份可以很轻松的备份数据库,但是备份路径中如果有空格的话就会出错,开始我也一头雾水,经过多方求教终于把问题解决了,希望对大家有所帮助
具体代码
//数据库备份 需要在窗体中放Label,ProgrssBar控件用来显示提示信息和进度条,还有OpenFileDialog,和SaveFileDialog控件
public void BackupDB(string strDbName,string FileName)
{
//
//进度条可见
//
this.pBarBackup.Visible = true;
string selfName = FileName ;
//◆数据备份:
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oBackup.Action = 0;
SQLDMO.BackupSink_PercentCompleteEventHandler pceh = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
oBackup.PercentComplete += pceh;
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(".", "sa", "sql");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = strDbName;//数据库名
//oBackup.Files = selfName;//文件路径
/*
把备份路径用 [ ] 括起来,这样表示一个文件,否则,文件路径中不可以有空格,有空格会解析成多个文件 如 [C:/Program Files/ACD.bak] 因为 oBackup.Filse = selfName;//文件路径 当oBackup.Filse 的值有空格的时候它当作多个文件路径处理,例如 oBackup.Filse ="C:/Inetpub/abc.bak D:/Inetpub/aaa.bak E:/Inetpub/bbb.bak"
是它会在三个地方进行备份,会出现三个备份文件,当然路径不存在的时候会出错,所以当备份路径有空格的时候,它解析为多个文件路径,大多数情况是不存在 的,如 oBackup.Filse="C:/Program Files/ACD Systems/aaa.bak" ,它解析成 C:/Program ,Files/ACD 和Systems/aaa.bak 三个备份路径 进行备份,三个路径又不存在,所以会出错
*/
selfName = string.Format("[{0}]", selfName);
oBackup.Files = selfName;//文件路径
//oBackup.Files = "";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch (System.Exception ex)
{
MessageBox.Show("数据库备份失败!请不要选择备份到桌面!/n/n" + ex.ToString());
}
finally
{
oSQLServer.DisConnect();
}
this.pBarBackup.Visible = false;
}
/// <summary>
/// 显示进度条
/// </summary>
private void Step(string message, int percent)
{
this.pBarBackup.Value = percent;
}
具体代码
//数据库备份 需要在窗体中放Label,ProgrssBar控件用来显示提示信息和进度条,还有OpenFileDialog,和SaveFileDialog控件
public void BackupDB(string strDbName,string FileName)
{
//
//进度条可见
//
this.pBarBackup.Visible = true;
string selfName = FileName ;
//◆数据备份:
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oBackup.Action = 0;
SQLDMO.BackupSink_PercentCompleteEventHandler pceh = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
oBackup.PercentComplete += pceh;
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(".", "sa", "sql");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = strDbName;//数据库名
//oBackup.Files = selfName;//文件路径
/*
把备份路径用 [ ] 括起来,这样表示一个文件,否则,文件路径中不可以有空格,有空格会解析成多个文件 如 [C:/Program Files/ACD.bak] 因为 oBackup.Filse = selfName;//文件路径 当oBackup.Filse 的值有空格的时候它当作多个文件路径处理,例如 oBackup.Filse ="C:/Inetpub/abc.bak D:/Inetpub/aaa.bak E:/Inetpub/bbb.bak"
是它会在三个地方进行备份,会出现三个备份文件,当然路径不存在的时候会出错,所以当备份路径有空格的时候,它解析为多个文件路径,大多数情况是不存在 的,如 oBackup.Filse="C:/Program Files/ACD Systems/aaa.bak" ,它解析成 C:/Program ,Files/ACD 和Systems/aaa.bak 三个备份路径 进行备份,三个路径又不存在,所以会出错
*/
selfName = string.Format("[{0}]", selfName);
oBackup.Files = selfName;//文件路径
//oBackup.Files = "";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch (System.Exception ex)
{
MessageBox.Show("数据库备份失败!请不要选择备份到桌面!/n/n" + ex.ToString());
}
finally
{
oSQLServer.DisConnect();
}
this.pBarBackup.Visible = false;
}
/// <summary>
/// 显示进度条
/// </summary>
private void Step(string message, int percent)
{
this.pBarBackup.Value = percent;
}
- SQLDMO备份数据库,如何去除备份路径里的空格
- SQLDMO备份,还原数据库
- SQLDMO数据库备份
- 用SQLDMO备份还原数据库
- 利用SQLDMO备份SQL数据库
- 引用SQLDMO对SQL数据库的备份和恢复
- 用SQLDMO组件备份SQL数据库,如何备份到另一台机子上?
- 动态备份SQL Server数据库:SQLDMO
- 用SQLDMO组件备份SQL数据库
- 使用SQLDMO备份与恢复数据库
- 使用SQLDMO进行数据库备份与还原
- 利用SQLDMO备份和还原数据库
- SQLDMO数据库备份还原 带进度条
- C#备份还原数据库(sqldmo.dll篇)
- 数据库备份操作,早就不用SQLDMO了
- SQLDMO数据库备份还原 带进度条
- 如何备份/恢复dreamhost空间里的mysql数据库
- java实现数据库备份和恢复源码---解决路径带空格引发的问题
- Encoding与Encoder
- ExecuteScalar为空的烦恼
- Shell脚本调试技术
- net中的WMI编程(二):WMI中的WQL语言和WQL的测试工具
- 如何辨别行货手机和水货手机
- SQLDMO备份数据库,如何去除备份路径里的空格
- SEO工具,站长必备
- 网站SEO优化方法,技巧和SEO搜索引擎优化排名研究
- 几款搜索引擎优化检测工具
- GOOGLE工具大全+搜索引擎免费登陆入口
- sharpmap中添加自定义图层
- 关于AT COMMAND的命令集
- 如何让Vista下的文本文件永远显示后缀名
- 花生壳+Apache服务器 组建自己的网站