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" runat="server" Font-Size="10pt" Design_Time_Lock="True">192.168.0.220</ASP:TextBox>
<ASP:Label id="Label7" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">數據庫列表</ASP:Label>
<asp:Label id="Label6" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True" Visible="False">字段名</ASP:Label>
<asp:Label id="Label5" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">表名</ASP:Label>
<asp:Button id="Button1" runat="server" Width="102px" Text="GetTable" Font-Size="10pt" Design_Time_Lock="True"></ASP:Button>
<asp:Label id="Label4" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">密碼</ASP:Label>
<asp:Label id="Label2" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">用戶名</ASP:Label>
<asp:Label id="Label1" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">服務器名</ASP:Label>
<asp:TextBox id="txtPassWord" runat="server" Font-Size="10pt" BackColor="Transparent" ForeColor="Black" BorderColor="White" Design_Time_Lock="True"></ASP:TextBox>
<asp:TextBox id="txtUserName" runat="server" Font-Size="10pt" Design_Time_Lock="True">sa</ASP:TextBox>
<asp:DropDownList id="DropDownList1" runat="server" Width="208px" AutoPostBack="True" Font-Size="10pt" Design_Time_Lock="True"></ASP:DropDownList>
<asp:DropDownList id="DropDownList2" runat="server" Width="208px" Height="28px" Font-Size="10pt" Design_Time_Lock="True" Visible="False"></ASP:DropDownList>
<asp:Button id="Button2" runat="server" Width="107px" Text="GetDataBase" Design_Time_Lock="True"></ASP:Button>
<asp:DropDownList id="DropDownList3" runat="server" Width="207px" Height="25px" Design_Time_Lock="True"></ASP:DropDownList>
<asp:Button id="Button3" runat="server" Width="110px" Text="生 成" Design_Time_Lock="True" Visible="False"></ASP:Button>
<asp:TextBox id="txtLayOut" runat="server" Width="619px" Height="367px" TextMode="MultiLine" BackColor="Ivory" Design_Time_Lock="True"></ASP:TextBox>
<asp:Button id="Button4" runat="server" Height="25px" Width="105px" Text="實體類" Design_Time_Lock="True"></ASP:Button>
<asp:Button id="Button5" runat="server" Width="107px" Text="Test" Height="25px" Design_Time_Lock="True" Visible="False"></ASP:Button>
<asp:Button id="Button6" 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
#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";p; 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";
&nb
sp; 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