⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editstoredprocedure.aspx.cs

📁 wrox c#高级编程
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using SqlAdmin;

namespace SqlWebAdmin
{
    /// <summary>
    /// Summary description for EditStoredProcedure.
    /// </summary>
    public class EditStoredProcedure : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox SProcTextTextbox;
        protected System.Web.UI.WebControls.Button SaveButton;
        protected System.Web.UI.WebControls.Label SProcNameLabel;
        protected System.Web.UI.WebControls.Label SProcOwnerLabel;
        protected System.Web.UI.WebControls.Label SProcCreateDateLabel;
        protected System.Web.UI.WebControls.Button CancelButton;
        protected System.Web.UI.WebControls.Label ErrorLabel;

        public EditStoredProcedure()
        {
            Page.Init += new System.EventHandler(Page_Init);
        }

        private void Page_Load(object sender, System.EventArgs e)
        {
            HttpCookie cookie = Request.Cookies["WebDataAdministrator"];
            if (cookie == null)
                Response.Redirect("default.aspx?error=sessionexpired");

            SqlServer server = new SqlServer(cookie.Values["server"], cookie.Values["username"], cookie.Values["password"]);

            string sprocName = Request["sproc"];

            if (!IsPostBack)
            {
                // Check to see if SProc is new or it already exists

                server.Connect();
                SqlDatabase database = server.Databases[Request["database"]];
                if (database == null) {
                    server.Disconnect();

                    // Database doesn't exist - break out and go to error page
                    Response.Redirect(String.Format("error.aspx?error={0}", 1000));
                    return;
                }

                SqlStoredProcedure sproc = database.StoredProcedures[sprocName];

                if (sproc == null)
                {
                    // SProc is new, create template
                    SProcNameLabel.Text = Server.HtmlEncode(sprocName);
                    SProcOwnerLabel.Text = "";
                    SProcCreateDateLabel.Text = "";

                    SProcTextTextbox.Text = String.Format("CREATE PROCEDURE [dbo].[{0}] AS", sprocName);
                }
                else
                {
                    // SProc already exists, load it from database
                    SProcNameLabel.Text = Server.HtmlEncode(sproc.Name);
                    SProcOwnerLabel.Text = Server.HtmlEncode(sproc.Owner);
                    SProcCreateDateLabel.Text = Server.HtmlEncode(Convert.ToString(sproc.CreateDate));

                    SProcTextTextbox.Text = sproc.Text;
                }

                server.Disconnect();
            }
        }

        private void Page_Init(object sender, EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
        }

        #region Web Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {    
            this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click);
            this.CancelButton.Click += new System.EventHandler(this.CancelButton_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void SaveButton_Click(object sender, System.EventArgs e)
        {
            HttpCookie cookie = Request.Cookies["WebDataAdministrator"];
            if (cookie == null)
                Response.Redirect("default.aspx?error=sessionexpired");

            SqlServer server = new SqlServer(cookie.Values["server"], cookie.Values["username"], cookie.Values["password"]);

            string sprocName = Request["sproc"];

            bool success = true;

            server.Connect();

            Exception ex = null;

            try
            {
                // Check to see if SProc is new or it already exists
                SqlDatabase database = server.Databases[Request["database"]];
                if (database == null) {
                    server.Disconnect();

                    // Database doesn't exist - break out and go to error page
                    Response.Redirect(String.Format("error.aspx?error={0}", 1000));
                    return;
                }
                SqlStoredProcedureCollection sprocs = database.StoredProcedures;
                SqlStoredProcedure sproc = sprocs[sprocName];

                if (sproc == null)
                {
                    // SProc is new, so create entirely new SProc (don't care about return value)
                    sprocs.Add(sprocName, SProcTextTextbox.Text);
                }
                else
                {
                    // SProc already exists, just update its text
                    sproc.Text = SProcTextTextbox.Text;
                }
            }
            catch (Exception ex2)
            {
                ex = ex2;
                success = false;
            }

            server.Disconnect();

            if (success)
            {
                // Redirect back to SProc page
                Response.Redirect("StoredProcedures.aspx?database=" + Server.UrlEncode(Request["database"]));
            }
            else
            {
                // show error
                ErrorLabel.Visible = true;
                ErrorLabel.Text = "There was an error saving the stored procedure.<br>" + Server.HtmlEncode(ex.Message).Replace("\n", "<br>");
            }
        }

        private void CancelButton_Click(object sender, System.EventArgs e)
        {
            Response.Redirect("StoredProcedures.aspx?database=" + Server.UrlEncode(Request["database"]));
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -