上一篇:用ASP.NET写你自己的代码生成器(2)。 >>
用ASP.NET写你自己的代码生成器(3)。
/// <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
相关文章:
- · vb.net cookie操作
- · Net中如何操作IIS(原理篇)
- · 关于选用何种ASP.NET设计方法的技巧
- · .Net中如何操作IIS(源代码) (原创)
- · iis 坏掉了,重新安装了以后.netframework 不能用了的解决方法
- · 两个aspx页面间传递引用对象。
- · 在Webcontrol的Toolbar上加入删除确认的方法(改进后)
- · TreeView 派生类: TreeViewEx 实现 NodeShowToolTip、NodeDoubleClick 事件
- · 我自己写的自定义Web的上传控件
- · 增加判断文字长度,汉字算2个
- · 客户端脚本对中文的验证(javascript)
- · 献丑了,我的asp.net网站开发经验,欢迎参加讨论。
- · 笑望人生,关于IHttpHandler处理图片
- · HTML在线编辑器--服务器控件~~.NET实现~~
- · How to Share Session State Between Classic ASP and ASP.NET(1)
- · How to Share Session State Between Classic ASP and ASP.NET(2)
- · 关于验证控件,希望对和我原来有疑惑的朋友有帮助(刚找的资料,结合猫猫的)
- · 上次的一个问题我打了微软的求助电话,他们也没有办法!
- · [技巧]DataGird的hyper column的url field 绑定两个字段
- · ms--help
- · 续
- · Simple Paging in Repeater and DataList Controls
- · ASP.NET编程中的十大技巧(建议进精华)
- · 转贴:DataGrid/DataList
- · 用ASP.NET写你自己的代码生成器(1)。
- · ASP.NET中Cookie编程的基础知识(6)
- · ASP.NET中Cookie编程的基础知识(5)
- · ASP.NET中Cookie编程的基础知识(4)
- · ASP.NET中Cookie编程的基础知识(3)
- · ASP.NET中Cookie编程的基础知识(2)
- · ASP.NET中Cookie编程的基础知识(1)
- · .NET中窗体间相互访问的几种方式
- · .net中PictureBox中图片的拖动
- · 在.NET上如何根据字符串动态创建控件
- · .NET 窗体之间的交互
- · 使用UltraWinGrid时双击的处理
- · .Net 下的Wondows窗体常用项目
- · 在.net中实现与ASP完全兼容的MD5算法(包括中文字符)
