首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

抽缩数据库中数据

2013-03-25 
收缩数据库中数据前台:%@ Page LanguageC# AutoEventWireuptrueCodeFileDefault.aspx.cs Inheri

收缩数据库中数据

前台:
<%@ 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>
后台:
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);    }}

 

热点排行