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>