代码改变世界

数据库的备份与恢复

2007-03-19 21:03  ruinet  阅读(313)  评论(0)    收藏  举报

程序代码:

<%@ Page %>
<HTML>
    
<HEAD>
        
<title>获取服务器端数据库列表示例</title>
        
<% @Import Namespace="System.Data" %>
        
<% @Import Namespace="System.Data.SqlClient" %>
        
<script language="C#" runat="server">

// 注意本节的数据库连接字符串
string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["conn"];

void Page_Load(
object sender, System.EventArgs e)
{
if(!IsPostBack)
{
// 创建连接及执行数据库操作
string db_query = "sp_helpdb";

SqlCommand myCommand 
= new SqlCommand(db_query, new SqlConnection(ConnStr));
myCommand.Connection.Open();
SqlDataReader dr 
= myCommand.ExecuteReader();

// 将数据库列表绑定到下拉列表控件(DropDownList)
dbDropDownList.DataSource 
= dr;
dbDropDownList.DataTextField 
= "name";
dbDropDownList.DataBind();

//关闭DataReader对象和数据库连接
dr.Close();
myCommand.Connection.Close();
}
}

void dbDropDownList_SelectedIndexChanged(
object sender, System.EventArgs e)
{
pathTextBox.Text 
= @"d:\BACKUP\" + dbDropDownList.SelectedValue + ".bak";
}

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

string backupSql = "use master;";
backupSql 
+= "backup database @dbname to disk = @path;";

SqlCommand myCommand 
= new SqlCommand(backupSql, 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
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text 
= "备份成功";
}
catch(Exception ex)
{
infoLabel.Text 
= "备份失败<br/>" + ex.ToString();
}
finally
{
myCommand.Connection.Close();
}
}

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;";

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
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text 
= "恢复成功";
}
catch(Exception ex)
{
infoLabel.Text 
= "恢复失败<br/>" + ex.ToString();
}
finally
{
myCommand.Connection.Close();
}
}

        
</script>



free web counter