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 Tables. /// public class Tables : System.Web.UI.Page { protected System.Web.UI.WebControls.Button FilterTablesButton; protected System.Web.UI.WebControls.DropDownList TableTypeDropDownList; protected System.Web.UI.WebControls.DataGrid TablesDataGrid; protected System.Web.UI.WebControls.Label TableTypeErrorLabel; protected System.Web.UI.WebControls.HyperLink AddNewTableHyperLink; public Tables() { Page.Init += new System.EventHandler(Page_Init); } private void Page_Load(object sender, System.EventArgs e) { FilterTablesButton_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); } #endregion private void FilterTablesButton_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"]); SqlObjectType objectTypeFilter; switch (TableTypeDropDownList.SelectedIndex) { case 0: objectTypeFilter = SqlObjectType.User; break; case 1: objectTypeFilter = SqlObjectType.User | SqlObjectType.System; break; default: throw new Exception("Invalid TableType selected"); } // Get table 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; } AddNewTableHyperLink.NavigateUrl = String.Format("createtable.aspx?database={0}", Server.UrlEncode(Request["database"])); SqlTableCollection tables = database.Tables; // 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"); ds.Tables[0].Columns.Add("rows"); for (int i = 0; i < tables.Count; i++) { SqlTable table = tables[i]; // Only add objects that we want (system or user) if ((table.TableType & objectTypeFilter) > 0) ds.Tables[0].Rows.Add(new object[] {Server.HtmlEncode(table.Name), Server.UrlEncode(table.Name), Server.HtmlEncode(table.Owner), Server.HtmlEncode(table.TableType.ToString()), Server.HtmlEncode(table.CreateDate.ToString()), table.Rows}); } // Show message if there are no tables, otherwise show datagrid if (ds.Tables[0].Rows.Count == 0) { TablesDataGrid.Visible = false; TableTypeErrorLabel.Visible = true; } else { TableTypeErrorLabel.Visible = false; TablesDataGrid.Visible = true; TablesDataGrid.DataSource = ds; TablesDataGrid.DataBind(); } server.Disconnect(); } } }