编程开发 > ASP > 文章内容

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

2012-3-27编辑:zwj
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();
                }
            }
        }

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

热点推荐

登录注册
触屏版电脑版网站地图