FRMMAIN.ASPX <%@ Page language="c#" Codebehind="FrmMain.aspx.cs" AutoEventWireup="false" Inherits="Web_Test.FrmMain" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>FrmMain</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="FrmMain" method="post" runat="server"> <asp:TextBox id="txtServerName" style="Z-INDEX: 101; LEFT: 116px; POSITION: absolute; TOP: 24px; Design_Time_Lock: True" runat="server" Font-Size="10pt" Design_Time_Lock="True">192.168.0.220</asp:TextBox> <asp:Label id="Label7" style="Z-INDEX: 112; LEFT: 24px; POSITION: absolute; TOP: 98px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">数据库列表</asp:Label> <asp:Label id="Label6" style="Z-INDEX: 111; LEFT: 27px; POSITION: absolute; TOP: 169px; Design_Time_Lock: True" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True" Visible="False">字段名</asp:Label> <asp:Label id="Label5" style="Z-INDEX: 109; LEFT: 27px; POSITION: absolute; TOP: 135px; Design_Time_Lock: True" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">表名</asp:Label> <asp:Button id="Button1" style="Z-INDEX: 107; LEFT: 496px; POSITION: absolute; TOP: 91px; Design_Time_Lock: True" runat="server" Width="102px" Text="GetTable" Font-Size="10pt" Design_Time_Lock="True"></asp:Button> <asp:Label id="Label4" style="Z-INDEX: 106; LEFT: 288px; POSITION: absolute; TOP: 63px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">密码</asp:Label> <asp:Label id="Label2" style="Z-INDEX: 105; LEFT: 25px; POSITION: absolute; TOP: 61px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">用户名</asp:Label> <asp:Label id="Label1" style="Z-INDEX: 104; LEFT: 25px; POSITION: absolute; TOP: 28px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">服务器名</asp:Label> <asp:TextBox id="txtPassword" style="Z-INDEX: 103; LEFT: 376px; POSITION: absolute; TOP: 60px; Design_Time_Lock: True" runat="server" Font-Size="10pt" BackColor="Transparent" ForeColor="Black" BorderColor="White" Design_Time_Lock="True"></asp:TextBox> <asp:TextBox id="txtUserName" style="Z-INDEX: 102; LEFT: 116px; POSITION: absolute; TOP: 62px; Design_Time_Lock: True" runat="server" Font-Size="10pt" Design_Time_Lock="True">sa</asp:TextBox> <asp:DropDownList id="DropDownList1" style="Z-INDEX: 108; LEFT: 115px; POSITION: absolute; TOP: 135px; Design_Time_Lock: True" runat="server" Width="208px" AutoPostBack="True" Font-Size="10pt" Design_Time_Lock="True"></asp:DropDownList> <asp:DropDownList id="DropDownList2" style="Z-INDEX: 110; LEFT: 115px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Width="208px" Height="28px" Font-Size="10pt" Design_Time_Lock="True" Visible="False"></asp:DropDownList> <asp:Button id="Button2" style="Z-INDEX: 113; LEFT: 355px; POSITION: absolute; TOP: 92px; Design_Time_Lock: True" runat="server" Width="107px" Text="GetDataBase" Design_Time_Lock="True"></asp:Button> <asp:DropDownList id="DropDownList3" style="Z-INDEX: 114; LEFT: 115px; POSITION: absolute; TOP: 98px; Design_Time_Lock: True" runat="server" Width="207px" Height="25px" Design_Time_Lock="True"></asp:DropDownList> <asp:Button id="Button3" style="Z-INDEX: 115; LEFT: 354px; POSITION: absolute; TOP: 132px; Design_Time_Lock: True" runat="server" Width="110px" Text="生 成" Design_Time_Lock="True" Visible="False"></asp:Button> <asp:TextBox id="txtLayOut" style="Z-INDEX: 117; LEFT: 26px; POSITION: absolute; TOP: 206px; Design_Time_Lock: True" runat="server" Width="619px" Height="367px" TextMode="MultiLine" BackColor="Ivory" Design_Time_Lock="True"></asp:TextBox> <asp:Button id="Button4" style="Z-INDEX: 118; LEFT: 497px; POSITION: absolute; TOP: 130px; Design_Time_Lock: True" runat="server" Height="25px" Width="105px" Text="实体类" Design_Time_Lock="True"></asp:Button> <asp:Button id="Button5" style="Z-INDEX: 119; LEFT: 355px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Width="107px" Text="Test" Height="25px" Design_Time_Lock="True" Visible="False"></asp:Button> <asp:Button id="Button6" style="Z-INDEX: 120; LEFT: 499px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Height="23px" Width="105px" Text="集合类" Design_Time_Lock="True" Visible="False"></asp:Button> </form> </body> </HTML> FRMMAIN.ASPX.CS using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace Web_Test { /// <summary> /// 作者:davi /// 日期:3003-03-18 /// </summary> public class FrmMain : System.Web.UI.Page { protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Label Label2; protected System.Web.UI.WebControls.Label Label4; protected System.Web.UI.WebControls.DropDownList DropDownList1; protected System.Web.UI.WebControls.Label Label5; protected System.Web.UI.WebControls.TextBox txtServerName; protected System.Web.UI.WebControls.TextBox txtUserName; protected System.Web.UI.WebControls.TextBox txtPassword; protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.DropDownList DropDownList2; protected System.Web.UI.WebControls.Label Label6; protected System.Web.UI.WebControls.Label Label7; protected System.Web.UI.WebControls.Button Button2; protected System.Web.UI.WebControls.DropDownList DropDownList3; protected System.Web.UI.WebControls.Button Button3; protected System.Web.UI.WebControls.TextBox txtLayOut; protected System.Web.UI.WebControls.Button Button4; protected System.Web.UI.WebControls.Button Button5; protected System.Web.UI.WebControls.Button Button6; private SqlConnection m_Scon; private DataSet m_DS; private void Page_Load(object sender, System.EventArgs e) { m_Scon = new SqlConnection(); m_DS = new DataSet(); } #region Web Form Designer generated code //[STAThreadAttribute] override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged); this.Button2.Click += new System.EventHandler(this.Button2_Click); this.Button3.Click += new System.EventHandler(this.Button3_Click); this.Button4.Click += new System.EventHandler(this.Button4_Click); this.Button5.Click += new System.EventHandler(this.Button5_Click); this.Button6.Click += new System.EventHandler(this.Button6_Click); this.Load += new System.EventHandler(this.Page_Load);
} #endregion #region 显示数据库的表 Button1_Click /// <summary> /// 显示数据库的表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button1_Click(object sender, System.EventArgs e) { try { m_Scon.ConnectionString = "user id="+this.txtUserName.Text+ ";password="+this.txtPassword.Text+ ";initial catalog="+this.DropDownList3.SelectedItem.Text+ ";data source="+this.txtServerName.Text; SqlCommand m_Scmd = new SqlCommand("sp_tables",m_Scon); m_Scmd.CommandType = CommandType.StoredProcedure; SqlParameter myParm = m_Scmd.Parameters.Add("@table_type",SqlDbType.VarChar,100); myParm.Value = "'TABLE'"; m_Scon.Open(); SqlDataReader m_Sdr = m_Scmd.ExecuteReader(); this.DropDownList1.Items.Clear(); while(m_Sdr.Read()) { if(m_Sdr["TABLE_NAME"].ToString()!="dtproperties") { ListItem m_LI = new ListItem(); m_LI.Text = m_Sdr["TABLE_NAME"].ToString(); m_LI.Value = m_Sdr["TABLE_NAME"].ToString(); this.DropDownList1.Items.Add(m_LI); } } m_Sdr.Close(); m_Scon.Close(); } catch { if(m_Scon.State.ToString().ToUpper()=="OPEN") { m_Scon.Close(); } } } #endregion #region Show Columns in a table DropDownList1_SelectedIndexChanged /// <summary> /// 显示表的所有列 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e) { try { if(this.DropDownList1.SelectedIndex!=-1) { m_Scon.ConnectionString = "user id="+this.txtUserName.Text+ ";password="+this.txtPassword.Text+ ";initial catalog="+this.DropDownList3.SelectedItem.Text+ ";data source="+this.txtServerName.Text; SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon); m_Scmd.CommandType = CommandType.StoredProcedure; SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100); myParm.Value = this.DropDownList1.SelectedItem.Value; m_Scon.Open(); SqlDataReader m_Sdr = m_Scmd.ExecuteReader(); this.DropDownList2.Items.Clear(); while(m_Sdr.Read()) { ListItem m_LI = new ListItem(); m_LI.Text = m_Sdr["COLUMN_NAME"].ToString(); m_LI.Value = m_Sdr["COLUMN_NAME"].ToString(); this.DropDownList2.Items.Add(m_LI); } m_Sdr.Close(); m_Scon.Close(); } } catch { if(m_Scon.State.ToString().ToUpper()=="OPEN") { m_Scon.Close(); } } } #endregion #region Show All DataBase Button2_Click /// <summary> /// 显示所有数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button2_Click(object sender, System.EventArgs e) { try { m_Scon.ConnectionString = "user id="+this.txtUserName.Text+ ";password="+this.txtPassword.Text+ ";data source="+this.txtServerName.Text; SqlCommand m_Scmd = new SqlCommand("sp_databases",m_Scon); m_Scmd.CommandType = CommandType.StoredProcedure; m_Scon.Open(); SqlDataReader m_Sdr = m_Scmd.ExecuteReader(); this.DropDownList1.Items.Clear(); while(m_Sdr.Read()) { ListItem m_LI = new ListItem(); m_LI.Text = m_Sdr["DATABASE_NAME"].ToString(); m_LI.Value = m_Sdr["DATABASE_NAME"].ToString(); this.DropDownList3.Items.Add(m_LI); } m_Sdr.Close(); m_Scon.Close(); } catch { if(m_Scon.State.ToString().ToUpper()=="OPEN") { m_Scon.Close(); } } } #endregion #region Make Form /// <summary> /// 生成表单项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button3_Click(object sender, System.EventArgs e) { if(this.DropDownList1.SelectedIndex!=-1) { m_Scon.ConnectionString = "user id="+this.txtUserName.Text+ ";password="+this.txtPassword.Text+ ";initial catalog="+this.DropDownList3.SelectedItem.Text+ ";data source="+this.txtServerName.Text; SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon); m_Scmd.CommandType = CommandType.StoredProcedure; SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100); myParm.Value = this.DropDownList1.SelectedItem.Value; m_Scon.Open(); SqlDataReader m_Sdr = m_Scmd.ExecuteReader(); string ColName = ""; string ColType = ""; while(m_Sdr.Read()) { ColName = m_Sdr["COLUMN_NAME"].ToString(); ColType = m_Sdr["TYPE_NAME"].ToString(); } m_Sdr.Close(); m_Scon.Close(); } } #endregion #region Make object /// <summary> /// 生成实体 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button4_Click(object sender, System.EventArgs e) { if(this.DropDownList1.SelectedIndex!=-1) { m_Scon.ConnectionString = "user id="+this.txtUserName.Text+ ";password="+this.txtPassword.Text+ ";initial catalog="+this.DropDownList3.SelectedItem.Text+ ";data source="+this.txtServerName.Text; SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon); m_Scmd.CommandType = CommandType.StoredProcedure; SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100); myParm.Value = this.DropDownList1.SelectedItem.Value; m_Scon.Open(); SqlDataReader m_Sdr = m_Scmd.ExecuteReader(); string TableName = this.DropDownList1.SelectedItem.Value; string m_LayOut = ""; m_LayOut = m_LayOut + "using System;\r\n"; m_LayOut = m_LayOut + "using System.Data;\r\n" ; m_LayOut = m_LayOut + "using System.Data.SqlClient;\r\n"; m_LayOut = m_LayOut + "\r\n"; m_LayOut = m_LayOut + "namespace OceanSoft\r\n"; m_LayOut = m_LayOut + "{\r\n"; m_LayOut = m_LayOut + BL(4) + "///<comment>\r\n"; m_LayOut = m_LayOut + BL(4) + "///\r\n"; m_LayOut = m_LayOut + BL(4) + "///</comment>\r\n"; string ColName = ""; //列名 string ColType = ""; //列的数据类型 string ColDefine = ""; //列定义 string ColProperty = ""; //列属性 while(m_Sdr.Read()) { ColName = m_Sdr["COLUMN_NAME"].ToString(); ColType = GT(m_Sdr["TYPE_NAME"].ToString()); ColDefine = ColDefine + BL(8) + "private " + ColType + " m_" + ColName + ";\r\n"; ColProperty = ColProperty + BL(8) + "\r\n"; ColProperty = ColProperty + BL(8) + "public " + ColType + " " + ColName + "\r\n"; ColProperty = ColProperty + BL(8) + "{\r\n"; ColProperty = ColProperty + BL(12) + "get\r\n"; ColProperty = ColProperty + BL(12) + "{\r\n"; ColProperty = ColProperty + BL(16) + "return m_" + ColName + " ;\r\n"; ColProperty = ColProperty + BL(12) + "}\r\n"; ColProperty = ColProperty + BL(12) + "set\r\n"; ColProperty = ColProperty + BL(12) + "{\r\n"; ColProperty = ColProperty + BL(16) + "m_" + ColName + " = value ;\r\n"; ColProperty = ColProperty + BL(12) + "}\r\n"; ColProperty = ColProperty + BL(8) + "}\r\n"; } m_Sdr.Close(); m_Scon.Close(); m_LayOut = m_LayOut + BL(4) + "public class " + TableName + "\r\n"; m_LayOut = m_LayOut + BL(4) + "{\r\n"; m_LayOut = m_LayOut + BL(4) + "\r\n"; m_LayOut = m_LayOut + ColDefine; //定义 m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "///构造函数\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "public " + TableName + "()\r\n"; //构造函数 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "///析构函数\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "~" + TableName + "()\r\n"; //析构函数 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n"; m_LayOut = m_LayOut + ColProperty; //实体属性 m_LayOut = m_LayOut + BL(4) + "}\r\n"; m_LayOut = m_LayOut + "}\r\n"; this.txtLayOut.Text = m_LayOut; } } #endregion #region Test private void Button5_Click(object sender, System.EventArgs e) { // } #endregion #region Functions private string BL(int values) { switch(values) { case 4: return "\t"; case 8: return "\t\t"; case 12: return "\t\t\t"; case 16: return "\t\t\t\t"; case 20: return "\t\t\t\t\t"; } return ""; } private string GT(string Values) { switch(Values.ToUpper()) { case "INT": return "int"; case "NVARCHAR": return "string"; case "TINYINT": return "int"; case "INT IDENTITY": return "int"; case "BIT": return "int"; case "UNIQUEIDENTIFIER": return "string"; case "DATETIME": return "string"; case "VARCHAR": return "string"; default: return "string"; } } #endregion #region Make Object Collection Class private void Button6_Click(object sender, System.EventArgs e) { if(this.DropDownList1.SelectedIndex!=-1) { string TableName = this.DropDownList1.SelectedItem.Value; string m_LayOut = ""; m_LayOut = m_LayOut + "using System;\r\n"; m_LayOut = m_LayOut + "using System.Data;\r\n" ; m_LayOut = m_LayOut + "using System.Data.SqlClient;\r\n"; m_LayOut = m_LayOut + "using System.Collections;\r\n"; m_LayOut = m_LayOut + "\r\n"; m_LayOut = m_LayOut + "namespace e3.Pantheon.WorkFlow.Structure\r\n"; m_LayOut = m_LayOut + "{\r\n"; m_LayOut = m_LayOut + BL(4) + "///<comment>\r\n"; m_LayOut = m_LayOut + BL(4) + "///公司名称:苏州中软公司\r\n"; m_LayOut = m_LayOut + BL(4) + "///作者:\r\n"; m_LayOut = m_LayOut + BL(4) + "///创建日期:"+System.DateTime.Now.ToShortDateString()+"\r\n"; m_LayOut = m_LayOut + BL(4) + "///用途说明:\r\n"; m_LayOut = m_LayOut + BL(4) + "///修改记录:\r\n"; m_LayOut = m_LayOut + BL(4) + "///</comment>\r\n"; m_LayOut = m_LayOut + BL(4) + "public class " + TableName + "s : System.Collections.CollectionBase\r\n"; m_LayOut = m_LayOut + BL(4) + "{\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "///构造函数\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "public " + TableName + "s()\r\n"; //构造函数 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(12) + "//TODO:在这里增加构造函数逻辑\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "///析构函数\r\n"; m_LayOut = m_LayOut + BL(8) + "///<summary>\r\n"; m_LayOut = m_LayOut + BL(8) + "~" + TableName + "s()\r\n"; //析构函数 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(12) + "//TODO:在这里增加析构函数逻辑\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n\r\n"; m_LayOut = m_LayOut + BL(8) + "public void Remove(int index)\r\n"; //删除 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(12) + "if(index>Counter-1||Counter<0)\r\n"; m_LayOut = m_LayOut + BL(12) + "{}\r\n"; m_LayOut = m_LayOut + BL(12) + "else\r\n"; m_LayOut = m_LayOut + BL(12) + "{\r\n"; m_LayOut = m_LayOut + BL(16) + "List.RemoveAt(index);\r\n"; m_LayOut = m_LayOut + BL(12) + "}\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n\r\n"; m_LayOut = m_LayOut + BL(8) + "public void Add("+TableName+" m_"+TableName+")\r\n"; //增加 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(12) + "List.Add("+" m_"+TableName+");\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n\r\n"; m_LayOut = m_LayOut + BL(8) + "public "+TableName+" this[int index]\r\n"; //集合的元素 m_LayOut = m_LayOut + BL(8) + "{\r\n"; m_LayOut = m_LayOut + BL(12) + "get\r\n"; m_LayOut = m_LayOut + BL(12) + "{\r\n"; m_LayOut = m_LayOut + BL(16) + "if(index <List.Count)\r\n"; m_LayOut = m_LayOut + BL(16) + "{\r\n"; m_LayOut = m_LayOut + BL(20) + "return ("+TableName+")List[Index];\r\n"; m_LayOut = m_LayOut + BL(16) + "}\r\n"; m_LayOut = m_LayOut + BL(16) + "else\r\n"; m_LayOut = m_LayOut + BL(16) + "{\r\n"; m_LayOut = m_LayOut + BL(16) + "return null;\r\n"; m_LayOut = m_LayOut + BL(16) + "}\r\n"; m_LayOut = m_LayOut + BL(12) + "}\r\n"; m_LayOut = m_LayOut + BL(12) + "set\r\n"; m_LayOut = m_LayOut + BL(12) + "{\r\n"; m_LayOut = m_LayOut + BL(16) + "if(iIndex<List.Count)\r\n"; m_LayOut = m_LayOut + BL(16) + "{\r\n"; m_LayOut = m_LayOut + BL(20) + "List[index]=value;\r\n"; m_LayOut = m_LayOut + BL(16) + "}\r\n"; m_LayOut = m_LayOut + BL(12) + "}\r\n"; m_LayOut = m_LayOut + BL(8) + "}\r\n"; m_LayOut = m_LayOut + BL(4) + "}\r\n"; //class m_LayOut = m_LayOut + "}\r\n"; //namespace this.txtLayOut.Text = m_LayOut; } } #endregion
|