程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 怎樣做sql server數據庫的還原

怎樣做sql server數據庫的還原

編輯:關於SqlServer
 今天由於畢業設計要做一個數據庫備份和還原的頁面。我參考了一段代碼後實現了功能但是我發現這段程序有一個比較麻煩的地方,就是數據庫的還原的時候會遇到排它性問題。

在網上搜索了找到了小白的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 = "恢復成功!
已經把備份"+path+"恢復到數據庫";

}
catch(Exception ex)
{
infoLabel.Text = "恢復失敗!
出錯信息如下:
" + ex.ToString();
}
finally
{
myCommand.Connection.Close();

}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved