Default.aspx
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <div style="text-align: center"> <table id="TABLE1" border="0" cellpadding="0" cellspacing="0" style="width: 298px; height: 88px; background-color: #a7f1ff;"> <tr> <td colspan="3" style="height: 24px"> <span style="font-size: 16pt; color: #ff0000"><strong>收缩数据库</strong></span></td> <td colspan="1" style="height: 24px"> </td> </tr> <tr> <td style="width: 94px"> </td> <td style="width: 282px"> 选择数据库:</td> <td style="width: 215px; text-align: left;"> <asp:DropDownList ID="ddlDataName" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlDataName_SelectedIndexChanged"> </asp:DropDownList></td> <td style="width: 100px"> </td> </tr> <tr> <td style="width: 94px; height: 28px"> </td> <td style="width: 282px; height: 28px;"> 当前大小:</td> <td style="width: 215px; height: 28px; text-align: left;"> <asp:Label ID="labDataSize" runat="server" Text="Label" Visible="False" ForeColor="Maroon"></asp:Label></td> <td style="width: 100px; height: 28px"> </td> </tr> <tr> <td style="width: 94px"> </td> <td style="width: 282px"> 收缩后大小:</td> <td style="width: 215px; text-align: left;"> <asp:Label ID="labShrinkSize" runat="server" Text="Label" Visible="False" ForeColor="Red"></asp:Label></td> <td style="width: 100px"> </td> </tr> <tr> <td colspan="1" style="width: 94px"> </td> <td colspan="2"> <asp:Button ID="btnShrink" runat="server" OnClick="btnShrink_Click" Text="收缩数据库" /></td> <td colspan="1"> </td> </tr> </table> </div> </div> </form> </body> </html>
Default.aspx.cs
View Code
using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlBind(); //自定义方法绑定下拉列表框 labDataSize.Visible = true; //显示label控件 //显示当前数据库的大小 labDataSize.Text = getSize(ddlDataName.SelectedValue); } } //创建数据库连接 protected SqlConnection createCon() { SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["strCon"]); return con; } //自定义方法将所有数据库名称绑定到下拉列表框中 protected void ddlBind() { SqlConnection con = createCon(); ; con.Open(); //打开数据库连接 //sql语句查询所有数据库信息 string str = "exec sp_helpdb"; SqlDataAdapter sda = new SqlDataAdapter(str, con); DataSet ds = new DataSet(); sda.Fill(ds); //填充数据集 ddlDataName.DataSource = ds.Tables[0].DefaultView; ddlDataName.DataTextField = "name"; //设置下拉列表显示的文本 ddlDataName.DataBind(); con.Close(); } //自定义方法返回当前数据库的大小 protected string getSize(string dataName) { SqlConnection con = createCon(); ; con.Open(); //sql语句获取指定数据库的信息 string str = "exec sp_helpdb " + dataName; SqlCommand com = new SqlCommand(str, con); SqlDataReader sdr = com.ExecuteReader(); sdr.Read(); //读取一条记录 //获取该数据库的大小 string size = sdr["db_size"].ToString(); sdr.Close(); con.Close(); return size; } //执行数据库收缩操作 protected void btnShrink_Click(object sender, EventArgs e) { string str = "DBCC SHRINKDATABASE ('" + ddlDataName.SelectedValue + "')"; SqlConnection con = createCon(); con.Open(); //打开数据库连接 SqlCommand com = new SqlCommand(str, con); try { com.ExecuteNonQuery(); //执行sql语句 labShrinkSize.Visible = true; //显示label控件 //显示当前数据库收缩后的大小 labShrinkSize.Text = getSize(ddlDataName.SelectedValue); } catch (Exception ex) { Response.Write(ex.Message.ToString()); } } //通过Label控件显示当前数据库的大小 protected void ddlDataName_SelectedIndexChanged(object sender, EventArgs e) { labShrinkSize.Visible = false; labDataSize.Visible = true; //显示当前数据库的大小 labDataSize.Text = getSize(ddlDataName.SelectedValue); } }