<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><">

用ASP.NET写你自己的代码生成器

80酷酷网    80kuku.com

  asp.net

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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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" 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) + "///&l, t;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_L..

 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: