代码生成器的实例

    技术2022-05-11  99

     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;

    public partial class _Default : System.Web.UI.Page{    public SqlConnection  m_Scon = new SqlConnection();    public  DataSet  m_DS = new DataSet();    private void Page_Load(object sender, System.EventArgs e)    {      SqlConnection  m_Scon = new SqlConnection();      DataSet  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}<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <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>


    最新回复(0)