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>