备份数据库:
string path = Server.MapPath("./") + "..\\..\\sqldata\\" + txtfileName.Text + ".bak";//完整路径
string dbname = "DZManage";//数据库名
string backupSql = "use master;";//避免错误
backupSql += "backup database @dbname to disk = @path;";
conn.setParameters("@dbname", dbname);
conn.setParameters("@path", path);
try
{
conn.Exec(backupSql);//执行sql语句
Response.Write(StringClass.MessageBox("备份成功!", "data.aspx"));
}
catch
{
Response.Write(StringClass.MessageBox("备份失败!", "data.aspx"));
}
finally
{
conn.Close();
}
恢复数据库:
string bakfilename = Gvw_List.DataKeys[e.RowIndex].Value.ToString();
string path = Server.MapPath("./") + "..\\..\\sqldata\\" + Gvw_List.DataKeys [e.RowIndex].Value.ToString();//完整路径
string dbname = "DZManage";
string restoreSql = "use master;";//避免错误
restoreSql += "ALTER DATABASE @dbname SET OFFLINE WITH ROOLBACK IMMEDIATE;";//将数据库置于离线状态
restoreSql += "restore database @dbname from disk = @path;";//恢复DZManage数据库
restoreSql += "ALTER DATABASE @dbname SET ONLINE WITH ROOLBACK IMMEDIATE;";//将数据库置于在线状态
conn.setParameters("@dbname", dbname);
conn.setParameters("@path", path);
try
{
Response.Write(restoreSql);
conn.Exec(restoreSql);//执行sql语句
Response.Write(StringClass.MessageBox("恢复数据成功!", "data.aspx"));
}
catch
{
Response.Write(StringClass.MessageBox("恢复数据失败!", "data.aspx"));
}
finally
{
conn.Close();
}
大家帮忙看下那有问题,调试都可以过去的
string path = Server.MapPath("./") + "..\\..\\sqldata\\" + txtfileName.Text + ".bak";//完整路径
string dbname = "DZManage";//数据库名
string backupSql = "use master;";//避免错误
backupSql += "backup database @dbname to disk = @path;";
conn.setParameters("@dbname", dbname);
conn.setParameters("@path", path);
try
{
conn.Exec(backupSql);//执行sql语句
Response.Write(StringClass.MessageBox("备份成功!", "data.aspx"));
}
catch
{
Response.Write(StringClass.MessageBox("备份失败!", "data.aspx"));
}
finally
{
conn.Close();
}
恢复数据库:
string bakfilename = Gvw_List.DataKeys[e.RowIndex].Value.ToString();
string path = Server.MapPath("./") + "..\\..\\sqldata\\" + Gvw_List.DataKeys [e.RowIndex].Value.ToString();//完整路径
string dbname = "DZManage";
string restoreSql = "use master;";//避免错误
restoreSql += "ALTER DATABASE @dbname SET OFFLINE WITH ROOLBACK IMMEDIATE;";//将数据库置于离线状态
restoreSql += "restore database @dbname from disk = @path;";//恢复DZManage数据库
restoreSql += "ALTER DATABASE @dbname SET ONLINE WITH ROOLBACK IMMEDIATE;";//将数据库置于在线状态
conn.setParameters("@dbname", dbname);
conn.setParameters("@path", path);
try
{
Response.Write(restoreSql);
conn.Exec(restoreSql);//执行sql语句
Response.Write(StringClass.MessageBox("恢复数据成功!", "data.aspx"));
}
catch
{
Response.Write(StringClass.MessageBox("恢复数据失败!", "data.aspx"));
}
finally
{
conn.Close();
}
大家帮忙看下那有问题,调试都可以过去的
=========
我做了一遍,因为在恢复时它要去找日志备份,必须把日志也备份了!backupSql 在字符串中加上日志备份,就可以,Backup Log LESPProject to disk='和@path路径一样,名称不一样' With No_Truncate
在恢复就可以了!
ROOLBACK ===修改为 rollback
终于 完成 测试
--备份
backup database LESPProject to disk = 'D:\Syenrgy\ASPNETWeb\2008.bak';
--还原
ALTER DATABASE LESPProject SET OFFLINE WITH ROlLBACK IMMEDIATE;
RESTORE DATABASE LESPProject FROM DISK = 'D:\Syenrgy\ASPNETWeb\2008.bak' with REPLACE
ALTER DATABASE LESPProject SET ONLINE WITH ROlLBACK IMMEDIATE;