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 description for StoredProcedures. /// public class StoredProcedures : System.Web.UI.Page { protected System.Web.UI.WebControls.DropDownList SProcTypeDropDownList; protected System.Web.UI.WebControls.Button FilterSProcsButton; protected System.Web.UI.WebControls.Label SProcTypeErrorLabel; protected System.Web.UI.WebControls.DataGrid SProcsDataGrid; protected System.Web.UI.WebControls.HyperLink AddNewSProcHyperLink; public StoredProcedures() { Page.Init += new System.EventHandler(Page_Init); } private void Page_Load(object sender, System.EventArgs e) { FilterSProcsButton_Click(null, null); } 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 /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); FilterSProcsButton.Click += new System.EventHandler(this.FilterSProcsButton_Click); } #endregion private void FilterSProcsButton_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 databaseName = Request["database"]; SqlObjectType objectTypeFilter; switch (SProcTypeDropDownList.SelectedIndex) { case 0: objectTypeFilter = SqlObjectType.User; break; case 1: objectTypeFilter = SqlObjectType.User | SqlObjectType.System; break; default: throw new Exception("Invalid SProcType selected"); } // Get stored procedure list 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; } AddNewSProcHyperLink.NavigateUrl = String.Format("createstoredprocedure.aspx?database={0}", Server.UrlEncode(Request["database"])); SqlStoredProcedureCollection sprocs = database.StoredProcedures; server.Disconnect(); // Create DataSet from result DataSet ds = new DataSet(); ds.Tables.Add(); ds.Tables[0].Columns.Add("name"); ds.Tables[0].Columns.Add("encodedname"); ds.Tables[0].Columns.Add("owner"); ds.Tables[0].Columns.Add("type"); ds.Tables[0].Columns.Add("createdate"); for (int i = 0; i < sprocs.Count; i++) { SqlStoredProcedure sproc = sprocs[i]; // Only add objects that we want (system or user) if ((sproc.StoredProcedureType & objectTypeFilter) > 0) ds.Tables[0].Rows.Add(new object[] {Server.HtmlEncode(sproc.Name), Server.UrlEncode(sproc.Name), Server.HtmlEncode(sproc.Owner), Server.HtmlEncode(sproc.StoredProcedureType.ToString()), Server.HtmlEncode(sproc.CreateDate.ToString())}); } // Show message if there are no tables, otherwise show datagrid if (ds.Tables[0].Rows.Count == 0) { SProcsDataGrid.Visible = false; SProcTypeErrorLabel.Visible = true; } else { SProcTypeErrorLabel.Visible = false; SProcsDataGrid.Visible = true; SProcsDataGrid.DataSource = ds; SProcsDataGrid.DataBind(); } } } }