📄 columns.aspx.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
{
public class edittable : System.Web.UI.Page
{
protected DataGrid ColumnsDataGrid;
protected Label NoColumnsLabel;
protected HyperLink AddNewColumnHyperLink;
public edittable()
{
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"]);
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;
}
SqlTable table = database.Tables[Request["table"]];
// Set link for add new column
AddNewColumnHyperLink.NavigateUrl = String.Format("editcolumn.aspx?database={0}&table={1}", Server.UrlEncode(Request["database"]), Server.UrlEncode(Request["table"]));
if (table != null) {
// The table exists and we do normal column editing
ColumnsDataGrid.Visible = true;
NoColumnsLabel.Visible = false;
if (!IsPostBack) {
// Update table properties
// Get columns list
SqlColumnCollection columns = table.Columns;
DataSet ds = new DataSet();
ds.Tables.Add();
ds.Tables[0].Columns.Add("key", typeof(bool));
ds.Tables[0].Columns.Add("id", typeof(bool));
ds.Tables[0].Columns.Add("name", typeof(string));
ds.Tables[0].Columns.Add("datatype", typeof(string));
ds.Tables[0].Columns.Add("size", typeof(int));
ds.Tables[0].Columns.Add("precision", typeof(int));
ds.Tables[0].Columns.Add("scale", typeof(int));
ds.Tables[0].Columns.Add("nulls", typeof(bool));
ds.Tables[0].Columns.Add("default", typeof(string));
ds.Tables[0].Columns.Add("encodedname", typeof(string));
for (int i = 0; i < columns.Count; i++) {
SqlColumnInformation columnInfo = columns[i].ColumnInformation;
ds.Tables[0].Rows.Add(new object[] {columnInfo.Key, columnInfo.Identity, Server.HtmlEncode(columnInfo.Name), Server.HtmlEncode(columnInfo.DataType), columnInfo.Size, columnInfo.Precision, columnInfo.Scale, columnInfo.Nulls, Server.HtmlEncode(columnInfo.DefaultValue), Server.UrlEncode(columnInfo.Name)});
}
ColumnsDataGrid.DataSource = ds;
ColumnsDataGrid.DataBind();
}
// If the table has data in it, disable edit column
if (table.Rows > 0) {
ColumnsDataGrid.Columns[2].Visible = true;
ColumnsDataGrid.Columns[3].Visible = false;
ColumnsDataGrid.Columns[8].Visible = false;
}
else {
ColumnsDataGrid.Columns[2].Visible = false;
ColumnsDataGrid.Columns[3].Visible = true;
ColumnsDataGrid.Columns[8].Visible = true;
}
// If the table has only one column, do not allow delete
if (table.Columns.Count == 1)
ColumnsDataGrid.Columns[9].Visible = false;
else
ColumnsDataGrid.Columns[9].Visible = true;
}
else {
// The table does not exist, implying that it is new
ColumnsDataGrid.Visible = false;
NoColumnsLabel.Visible = true;
}
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.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -