如何使用sqldmo备份还原数据库
这是备份的代码:
总是报错无法连接上,为什么呢?
下面这个是还原的代码:
这两段代码总是不能执行,请各位大侠帮忙解决一下,看我哪里写错了,谢谢啦
if (MessageBox.Show("您要备份数据库吗?", "备份数据库", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("PC201012291333", "sa", "");//PC201012291333是我的机器名,sa没有设置密码
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = "db_mhjg";//这是我的数据库名
oBackup.Files = @"C:\Documents and Settings\Administrator\桌面\123.bak";//这是我的备份文件路径和名称
oBackup.BackupSetName = "db_mhjg";
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
oSQLServer.DisConnect();
}总是报错无法连接上,为什么呢?
下面这个是还原的代码:
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
try
{
svr.Connect("PC201012291333", "sa", "");
SQLDMO.QueryResults qr = svr.EnumProcesses(-1);
int iColPIDNum = -1;
int iColDbName = -1;
for (int i = 1; i <= qr.Columns; i++)
{
string strName = qr.get_ColumnName(i);
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = i;
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = i;
}
if (iColPIDNum != -1 && iColDbName != -1)
break;
}
for (int i = 1; i <= qr.Rows; i++)
{
int lPID = qr.GetColumnLong(i, iColPIDNum);
string strDBName = qr.GetColumnString(i, iColDbName);
if (strDBName.ToUpper() == strDbName.ToUpper())
svr.KillProcess(lPID);
}
SQLDMO.Restore res = new SQLDMO.RestoreClass();
res.Action = 0;
res.Files = @"C:\Documents and Settings\Administrator\桌面\123.bak";//123.bak是已经被分好的数据库名字
res.Database = db_mhjg;//要备份的数据库
res.ReplaceDatabase = true;
res.SQLRestore(svr);
return true;
}
catch (Exception err)
{
throw (new Exception("恢复数据库失败,请关闭所有和该数据库连接的程序!" + err.Message));
//return false ;
//MessageBox.Show("恢复数据库失败,请关闭所有和该数据库连接的程序!"+err.Message);
}
finally
{
svr.DisConnect();
}这两段代码总是不能执行,请各位大侠帮忙解决一下,看我哪里写错了,谢谢啦
...全文
相关推荐
文章:利用SQLDMO备份和还原数据库的文章/资源包和源码
利用SQLDMO备份和还原数据库的资源包(完整的SQLDMO.DLL文件)和SQL数据库备份与还原的源码
c# 备份还原数据库 sql2008 包括说明和sqldmo.dll
c# 备份还原数据库 sql2008 包括说明和sqldmo.dll
C#使用SQLDMO备份还原数据库(进度条)
C#使用SQLDMO备份还原数据库(进度条)
Interop.SQLDMO 接口
功能完善的 数据库操作的DLL类库,ASP.NET利用它可以实现在线备份、还原数据库等各种功能
asp.net备份和还原数据库(C#)
ASP.NET备份还原数据库,以及sqlDMO的注册


