飞仙 发表于 2007-7-5 10:22:34

怎样做sql server数据库的还原

今天由于毕业设计要做一个数据库备份和还原的页面。我参考了一段代码后实现了功能但是我发现这段程序有一个比较麻烦的地方,就是数据库的还原的时候会遇到排它性问题。

在网上搜索了找到了小白的Blog上转了一个大富翁论坛上的讨论,看了讨论后发现里面提供的方法还不能直接用于ASP.NET。我对代码进行了稍稍的改动

void restoreButton_Click(object sender, System.EventArgs e)
{
string path = pathTextBox.Text;
string dbname = dbDropDownList.SelectedValue;

string restoreSql = "use master;";
restoreSql += "restore database @dbname from disk = @path;";
      string pai = "use master;ALTER DATABASE Wy SET OFFLINE WITH ROLLBACK IMMEDIATE;ALTER DATABASE Wy SET ONLINE WITH ROLLBACK IMMEDIATE";
      SqlConnection conn = new SqlConnection(ConnStr);
      SqlCommand com1 = new SqlCommand(pai, conn);

SqlCommand myCommand = new SqlCommand(restoreSql, new SqlConnection(ConnStr));

myCommand.Parameters.Add("@dbname", SqlDbType.Char);
myCommand.Parameters["@dbname"].Value = dbname;
myCommand.Parameters.Add("@path", SqlDbType.Char);
myCommand.Parameters["@path"].Value = path;


try
{
          conn.Open();
          com1.ExecuteNonQuery();
          conn.Close();
          myCommand.Connection.Open();
   myCommand.ExecuteNonQuery();
          infoLabel.Text = "恢复成功!<br>已经把备份"+path+"恢复到数据库";

}
catch(Exception ex)
{
          infoLabel.Text = "恢复失败!<br>出错信息如下:<br>" + ex.ToString();
}
finally
{
   myCommand.Connection.Close();

}
}

蜜蜂 发表于 2007-11-9 09:57:11

在企业管理器直接还原就行了,不要 那么复杂吧!

lzg859 发表于 2008-3-26 20:49:35

如果数据库破坏怎么样做及时恢复

jiaraoaini 发表于 2008-4-15 09:51:40

用什么修复工具最好???

na509 发表于 2008-4-23 14:52:24

原帖由 jiaraoaini 于 2008-4-15 09:51 发表 http://bbs.intohard.com/images/common/back.gif
用什么修复工具最好???
SQL数据库修复工具,欢迎下载试用!

szcqh 发表于 2008-7-19 14:51:21

这样数据库可以还原吗!安全性问题可以保障吗?

chjika 发表于 2009-6-12 00:03:16

学习学习.可耕地

dong31680 发表于 2009-7-31 04:10:57

在企业管理器直接还原就行了

xxuehen 发表于 2009-9-28 16:47:06

学习!!!!!!!!!!!!!11
页: [1]
查看完整版本: 怎样做sql server数据库的还原