/相关代码如下
#region 立即备份
/// <summary>
/// 立即备份
/// </summary>
/// <param name="param">数据库连接参数</param>
/// <param name="backupType">备份类型</param>
/// <param name="backupPath">备份文件存放目录</param>
/// <returns>执行成功为true,失败为false</returns>
public bool BackupAtOnce(DBConnectionParams param,SQLDMO.SQLDMO_BACKUP_TYPE backupType,string backupPath)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(param.ServerName,param.UserID,param.Password);
oBackup.Action = backupType;
oBackup.Database = param.DatabaseName;
oBackup.BackupSetName = param.DatabaseName;
oBackup.Files = backupPath + @"\" + param.DatabaseName + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".bak";
oBackup.BackupSetDescription = "back up by " + param.UserID + " at " + DateTime.Now.ToString();
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
return true;
}
catch (Exception ex)
{
this.m_ErrorMessage = ex.Message;
return false;
}
finally
{
oSQLServer.DisConnect();
}
}
#endregion
//问题是当oBackup.Files的值含有空格时,比如为“C:\Program Files”,执行备份时就会出现错误,我在前后加了单引号也没有用,如何解决呢,谢谢~~~~~~~~~~~~~~~~~~
#region 立即备份
/// <summary>
/// 立即备份
/// </summary>
/// <param name="param">数据库连接参数</param>
/// <param name="backupType">备份类型</param>
/// <param name="backupPath">备份文件存放目录</param>
/// <returns>执行成功为true,失败为false</returns>
public bool BackupAtOnce(DBConnectionParams param,SQLDMO.SQLDMO_BACKUP_TYPE backupType,string backupPath)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(param.ServerName,param.UserID,param.Password);
oBackup.Action = backupType;
oBackup.Database = param.DatabaseName;
oBackup.BackupSetName = param.DatabaseName;
oBackup.Files = backupPath + @"\" + param.DatabaseName + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".bak";
oBackup.BackupSetDescription = "back up by " + param.UserID + " at " + DateTime.Now.ToString();
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
return true;
}
catch (Exception ex)
{
this.m_ErrorMessage = ex.Message;
return false;
}
finally
{
oSQLServer.DisConnect();
}
}
#endregion
//问题是当oBackup.Files的值含有空格时,比如为“C:\Program Files”,执行备份时就会出现错误,我在前后加了单引号也没有用,如何解决呢,谢谢~~~~~~~~~~~~~~~~~~
解决方案 »
- mysql 累计 比例查询
- 问一个SQL查询问题
- 请教一下,两条sql语句的区别,我试过,结果总是一样的.[我知道这是基础问题,可是我确实水平太差了.]
- ASP操作SQL Server数据库中的问题:“库、NAME、库中文件、表”之间的关系是怎样的?请看例子:
- 请问sql6.5数据库变灰(被质疑了)怎么办?急啊
- 向 xys_777 提问 怎么把 from syscolumns 也改成动态的?
- 模糊查询?
- BULK INSERT的问题,请大家帮忙
- 关于行列转换的问题
- SOS。。。。。
- 如何判断一条记录在数据库中是否存在
- 错误提示:SQL Server 不允许进行远程连接 (sql server版本为2005)
backup database Testdb to disk='D:\Program Files\1.bak'
成功了,楼主换个没有空格的路径,看看能成功吗?
是它会在三个地方进行备份,会出现三个备份文件,当然路径不存在的时候会出错,所以当备份路径有空格的时候,它解析为多个文件路径,大多数情况是不存在的,如 oBackup.Filse="C:\Program Files\ACD Systems\aaa.bak" ,它解析成 C:\Program ,Files\ACD 和Systems\aaa.bak 三个备份路径 进行备份,三个路径又不存在,所以会出错,现在还不知道如何解决,希望指点 谢了
//数据库备份 需要在窗体中放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;//文件路径 oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch (System.Exception ex)
{
MessageBox.Show("数据库备份失败!请不要选择备份到桌面!\n\n" + ex.ToString());
}
finally
{
oSQLServer.DisConnect();
}
this.pBarBackup.Visible = false;
}
[C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\test_now.bak]