<% ... @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:BACKUPNorthwind.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>