用ASP.NET写你自己的代码生成器(3)。

asp.net

#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

时间: 2024-09-19 09:17:56

用ASP.NET写你自己的代码生成器(3)。的相关文章

用ASP.NET写你自己的代码生成器(1)。

asp.net 最近写实体类集合类控制类什么的太"类"了,因此就花了点时间写了个代码生成器,与大家共享! FRMMAIN.ASPX <%@ Page language="c#" Codebehind="FrmMain.aspx.cs" AutoEventWireup="false" Inherits="Web_Test.FrmMain" %><!DOCTYPE HTML PUBLIC &q

用ASP.NET写你自己的代码生成器(2)。

asp.net 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.WebCon

用asp.net写的论坛程序

asp.net|程序 这是一个用asp.net写的论坛程序,虽然简单但可以运行.这个程序的编程思想其实还是基本延续了asp的方式,如果让那只大鸟儿看见可能要嘘之以鼻.但实际上这种方式对于asp程序向asp.net的快速移植还是有用的.如果你对这种移植不屑那也没办法,这个贴子就算给asp.net刚入门的小虾们开开眼.这个例子包含3部分1)forum.aspx-论坛主页.2)reply.aspx-当在论坛主页中点击一个贴子时调用,显示贴子详细内容.3)postmessage.aspx-上贴时调用,将

asp net的作业-用ASP.NET写的学生信息管理系统的的源码和登录界面的源码

问题描述 用ASP.NET写的学生信息管理系统的的源码和登录界面的源码 麻烦哪位高人给我用ASP.NET写的学生信息管理系统的的源码和登录界面的源码,感谢感谢了,我们老师叫我们做,不然····,但是我不会,救救我吧,非常感谢,我邮箱1490223687@qq.com 解决方案 亲,你有了没?!有的话可以发给我么?!1121021242扣扣,拿到了 解决方案二: 请问你有这个资料了吗?能发一份吗?

框架-asp.net写得网页第一次打开为何会跳动一下

问题描述 asp.net写得网页第一次打开为何会跳动一下 网页是嵌在一个框架里面的,不知道为何初次打开会跳一下,第二次就不跳了,, 解决方案 你应该是哪里不小心设置 了刷新了,仔细看下代码

请问asp.net写的文件下载程序为什么用快车会把整个页面下载下来呢

问题描述 请问asp.net写的文件下载程序,在点击下载时,右键另存为没问题,可是为什么用快车下载时,在另存为框里是页面名称,如果不修改名称就会把整个页面下载下来呢?如何让另存为框里显示文件的名称而不是页面名称呢?请高手帮忙,谢谢. 解决方案 解决方案二:sf解决方案三:是不是点错地方了!第一次见你这类问题!解决方案四:我也是这头次遇到,没有点错地方解决方案五:有些网站限制了不能使用多线程下载,否则URL转向错误就会找不到下载文件直接把网页下载下来右键另存为其实网页做了转向,有的网站禁止多线程下

求大神把这段代码完成的功能用asp代码写出来

问题描述 求大神把这段代码完成的功能用asp代码写出来 protected void Button1_Click(object sender, System.EventArgs e) { XmlDocument doc = new XmlDocument(); String Account = TextBox1.Text.ToString(); String Password = TextBox2.Text.ToString(); String url = "http://3tong.net/h

一个网站程序是由asp.net写的,里面的代码大多数封装到了dll里面,dll能在被编译么!?又办法没?

问题描述 一个网站程序是由asp.net写的,里面的代码大多数封装到了dll里面,dll能在被编译么!?有办法没?

asp.net 写cookies与删除cookies代码

asp教程写cookie代码 '---------------------------------------------------------------- ' Name: WriteCookie(ByVal strCookieName As String, ByVal strKeyName As String, ByVal strKeyValue As String) ' Parameters: ' [ByVal] strCookieName - cookie名字 ' [ByVal] st