您的位置:首页 > 数据库

如何得到服务器端数据库列表并备份和恢复数据库

2006-06-29 09:00 393 查看



<%

@Import Namespace="System.Data" %>




<%

@Import Namespace="System.Data.SqlClient" %>


<HTML>


<HEAD>


<title>获取服务器端数据库列表示例</title>




<script language="C#" runat="server">





// 注意本节的数据库连接字符串


string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer1"];


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 = @"C:/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>


</HEAD>


<body>


<form id="Form1" method="post" runat="server">


<h3>获取服务器端数据库列表示例</h3>


数据库列表:


<asp:dropdownlist id="dbDropDownList" runat="server" AutoPostBack="True"


OnSelectedIndexChanged="dbDropDownList_SelectedIndexChanged"></asp:dropdownlist>


<br><br>


请输入备份目录及备份文件名:


<asp:textbox id="pathTextBox" runat="server" Width="224px">


C:/BACKUP/Northwind.bak</asp:textbox>(目录必须存在)


<br><br>


<asp:button id="backupButton" runat="server" Font-Size="9pt" Text="备份数据库"


OnClick="backupButton_Click"></asp:button>


<asp:button id="restoreButton" runat="server" Font-Size="9pt" Text="恢复数据库"


OnClick="restoreButton_Click"></asp:button>


<br><br>


<asp:Label id="infoLabel" runat="server"></asp:Label>


</form>


</body>


</HTML>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: