摆脱CodeSmith,使用页面生成.CS文件
2006-02-22 16:35
369 查看
大家好,首先我要声明的是:本人不曾对CodeSmith有过任何偏见,相反,在以后我做的几个项目中,
曾大量使用它来生成一些代码。但是由于本人最近在研究IOC类型框架Castle时,为了生成符合我要求的
数据表类型CS文件,发现去定义自己的CodeSmith模版太麻烦了,因此动了使用网页ASPX生成CS文件的念
头[可能有点BT],但是在完成这个程序后发现,这个东西非常好用。虽然目前只能进行SQLSERVER2000数
据库文件生成,但相信扩展到其它数据库类型并不难,但由于本人精力有限,目前只能做到此步。相信
有使用ORACLE,MYSQL等数据库的朋友完善它。
闲话少叙,马上开说。
如何找出当前数据库中的所有表字段和类型,有许多的方法,本人只用最常用的SQL语句来完成,如
下:
SELECT 表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id and a.colid=g.smallid left join sysproperties f on d.id=f.id and f.smallid=0 order by a.id,a.colorder
得到了相应的信息之后,开始生成CS文件,相关函数代码如下:
1
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
//写入接口文件内容
2
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public string InterFaceFileContent(string TableName,string TableField)
3
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
4
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string talbefield=null;
5
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
foreach(string m_tablefield in TableField.Split(';'))
6
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
7
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
if (m_tablefield.Trim()!="") talbefield+= m_tablefield+"{get;set;}/r/n ";
8
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
9
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
10
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder content=new StringBuilder();
11
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System;/r/n");
12
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System.Data;/r/n");
13
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n");
14
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("namespace Entity/r/n");
15
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
16
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// <summary>/r/n ");
17
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// Entity 的摘要说明。/r/n ");
18
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// </summary>/r/n ");
19
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public interface I"+TableName+"Entity/r/n ");
20
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
21
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(talbefield+"/r/n ");
22
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n/r/n ");
23
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
24
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public interface IDao_"+TableName+"Entity/r/n ");
25
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
26
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Insert(I{0}Entity dse);/r/n ",TableName));
27
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Update(I{0}Entity dse);/r/n ",TableName));
28
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("void Delete(string Condition);/r/n ");
29
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DataTable Find(string SqlString);/r/n ");
30
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Find(int id);/r/n ",TableName));
31
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
32
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
33
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
return content.ToString();
34
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
35
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
36
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
37
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
//写入实体文件内容
38
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public string EntityFileContent(string TableName,string TableField)
39
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
40
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string tablefield=null;
41
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string tablefieldname=null; //字段名,例:ID,NAME
42
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string insertvaluetablefield=null; //例如:ie.ID,ie.Name
43
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string insertvaluetableindex=null; //例如:'{1}','{2}';
44
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string updatevaluetablefield=null; //例如:ID='{0}',Name='{1}'
45
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string createfunction=null; //重载构造函数体
46
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
int i=0;
47
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
48
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//拼接出符合上面变量格式的字符串
49
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
foreach(string m_tablefield in TableField.Split(';'))
50
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
51
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
if (m_tablefield.Trim()!="")
52
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
53
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder field=new StringBuilder();
54
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("private "+m_tablefield.Replace(" "," m_")+";/r/n ");
55
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append(string.Format("public {0}/r/n ",m_tablefield));
56
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("{/r/n ");
57
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("get { return m_"+m_tablefield.Split(' ')[1]+"; }/r/n ");
58
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("set { m_"+m_tablefield.Split(' ')[1]+" = value; }/r/n ");
59
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("}/r/n ");
60
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
61
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefield+= field.ToString()+"/r/n ";
62
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
63
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefieldname+=m_tablefield.Split(' ')[1]+",";
64
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetablefield+="ie."+m_tablefield.Split(' ')[1]+",";
65
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetableindex+="'{"+i.ToString()+"}',";
66
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
updatevaluetablefield+=m_tablefield.Split(' ')[1]+"='{"+i.ToString()+"}',";
67
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
68
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
createfunction+="m_"+m_tablefield.Split(' ')[1]+"="+m_tablefield.Split(' ')[1]+";/r/n ";
69
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
70
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
i++;
71
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
72
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
73
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//去掉尾部的‘,’号
74
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefieldname=tablefieldname.Substring(0,tablefieldname.Length-1);
75
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetablefield=insertvaluetablefield.Substring(0,insertvaluetablefield.Length-1);
76
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetableindex=insertvaluetableindex.Substring(0,insertvaluetableindex.Length-1);
77
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
updatevaluetablefield=updatevaluetablefield.Substring(0,updatevaluetablefield.Length-1);
78
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
79
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder content=new StringBuilder();
80
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//实体类写入
81
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/dot.gif)
#region
82
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System;/r/n");
83
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System.Data;/r/n");
84
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using DbService;/r/n");
85
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n");
86
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("namespace Entity/r/n");
87
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
88
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// <summary>/r/n ");
89
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("/// {0}_Entity 的摘要说明。/r/n ",TableName));
90
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// </summary>/r/n ");
91
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public class {0}:I{0}Entity/r/n ",TableName));
92
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
93
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//构造函数
94
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public {0}()/r/n ",TableName));
95
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
96
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
97
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// TODO: 在此处添加构造函数逻辑/r/n ");
98
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
99
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("Console.WriteLine(/"create "+TableName+"Entity /");/r/n ");
100
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
101
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
102
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//重载构造函数
103
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public {0}({1})/r/n ",TableName,TableField.Substring(0,TableField.Length-1).Replace(';',',')));
104
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
105
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
106
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// TODO: 在此处添加构造函数逻辑/r/n ");
107
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
108
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(createfunction+"/r/n ");
109
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
110
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
111
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入实体属性字段
112
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(tablefield+"/r/n ");
113
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
114
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
115
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
116
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
117
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
118
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
119
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//实体操作类写入
120
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/dot.gif)
#region
121
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public class {0}DAO:IDao_{0}Entity/r/n ",TableName));
122
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
123
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
124
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Insert(I{0}Entity ie)/r/n ",TableName));
125
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
126
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("string SqlString=String.Format(/"Insert Into
![](http://www.cnblogs.com/Images/dot.gif)
{0} (
![](http://www.cnblogs.com/Images/dot.gif)
{1}) Values (
![](http://www.cnblogs.com/Images/dot.gif)
{2})/",{3});/r/n ",TableName,tablefieldname,insertvaluetableindex,insertvaluetablefield));
127
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DbAccess.InsertSqlString(SqlString);/r/n ");
128
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
129
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
130
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
131
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
132
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//更新函数
133
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Update(I{0}Entity ie)/r/n ",TableName));
134
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
135
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("string SqlString=String.Format(/"Update
![](http://www.cnblogs.com/Images/dot.gif)
{0} Set
![](http://www.cnblogs.com/Images/dot.gif)
{1} /",{2});/r/n ",TableName,updatevaluetablefield,insertvaluetablefield));
136
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DbAccess.UpdateSqlString(SqlString);/r/n ");
137
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
138
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
139
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
140
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//删除函数
141
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public void Delete(string Condition)/r/n ");
142
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
143
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("DbAccess.Delete(/"
![](http://www.cnblogs.com/Images/dot.gif)
{0}/",Condition);/r/n ",TableName));
144
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
145
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
146
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//查找函数
147
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public DataTable Find(string SqlString)/r/n ");
148
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
149
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return DbAccess.SelectAllSqlString(SqlString).Tables[0];/r/n ");
150
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
151
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
152
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//查找函数
153
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Find(int ID)/r/n ",TableName));
154
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
155
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("DataTable dt=DbAccess.SelectAllSqlString(/"Select Top 1 * From
![](http://www.cnblogs.com/Images/dot.gif)
{0} Where ID=/"+ID.ToString()).Tables[0];/r/n ",TableName));
156
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("if (dt.Rows.Count>0)/r/n ");
157
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
158
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity ie=new {0}();/r/n ",TableName));
159
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("//此处进行数据赋值操作/r/n ");
160
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
161
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
162
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return null;/r/n ");
163
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
164
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
165
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
166
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
167
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
168
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
return content.ToString();
169
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
170
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
171
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
172
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
然后用如下代码调用上面的两个函数
173
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
174
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public void WriteCS_File(string TableName,string TableField)
175
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
176
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入接口文件
177
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
using(FileStream fs = File.Create(Server.MapPath("Test/"+TableName+"_Interface.cs"), 1024))
178
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
179
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
Byte[] info = new UTF8Encoding(true).GetBytes(InterFaceFileContent(TableName,TableField));
180
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
// 向文件写信息
181
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Write(info, 0, info.Length);
182
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Close();
183
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
184
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
185
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入实体文件
186
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
using(FileStream fs = File.Create(Server.MapPath("Test/"+TableName+"_Entity.cs"), 1024))
187
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
188
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
Byte[] info = new UTF8Encoding(true).GetBytes(EntityFileContent(TableName,TableField));
189
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
// 向文件写信息
190
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Write(info, 0, info.Length);
191
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Close();
192
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
193
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
194
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
195
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
代码写的比较乱,没时间整理,望大家见谅。
![](http://images.cnblogs.com/cnblogs_com/daizhj/123.JPG)
源代码
曾大量使用它来生成一些代码。但是由于本人最近在研究IOC类型框架Castle时,为了生成符合我要求的
数据表类型CS文件,发现去定义自己的CodeSmith模版太麻烦了,因此动了使用网页ASPX生成CS文件的念
头[可能有点BT],但是在完成这个程序后发现,这个东西非常好用。虽然目前只能进行SQLSERVER2000数
据库文件生成,但相信扩展到其它数据库类型并不难,但由于本人精力有限,目前只能做到此步。相信
有使用ORACLE,MYSQL等数据库的朋友完善它。
闲话少叙,马上开说。
如何找出当前数据库中的所有表字段和类型,有许多的方法,本人只用最常用的SQL语句来完成,如
下:
SELECT 表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id and a.colid=g.smallid left join sysproperties f on d.id=f.id and f.smallid=0 order by a.id,a.colorder
得到了相应的信息之后,开始生成CS文件,相关函数代码如下:
1
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
//写入接口文件内容
2
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public string InterFaceFileContent(string TableName,string TableField)
3
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
4
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string talbefield=null;
5
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
foreach(string m_tablefield in TableField.Split(';'))
6
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
7
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
if (m_tablefield.Trim()!="") talbefield+= m_tablefield+"{get;set;}/r/n ";
8
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
9
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
10
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder content=new StringBuilder();
11
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System;/r/n");
12
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System.Data;/r/n");
13
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n");
14
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("namespace Entity/r/n");
15
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
16
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// <summary>/r/n ");
17
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// Entity 的摘要说明。/r/n ");
18
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// </summary>/r/n ");
19
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public interface I"+TableName+"Entity/r/n ");
20
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
21
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(talbefield+"/r/n ");
22
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n/r/n ");
23
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
24
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public interface IDao_"+TableName+"Entity/r/n ");
25
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
26
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Insert(I{0}Entity dse);/r/n ",TableName));
27
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Update(I{0}Entity dse);/r/n ",TableName));
28
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("void Delete(string Condition);/r/n ");
29
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DataTable Find(string SqlString);/r/n ");
30
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity Find(int id);/r/n ",TableName));
31
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
32
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
33
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
return content.ToString();
34
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
35
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
36
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
37
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
//写入实体文件内容
38
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public string EntityFileContent(string TableName,string TableField)
39
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
40
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string tablefield=null;
41
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string tablefieldname=null; //字段名,例:ID,NAME
42
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string insertvaluetablefield=null; //例如:ie.ID,ie.Name
43
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string insertvaluetableindex=null; //例如:'{1}','{2}';
44
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string updatevaluetablefield=null; //例如:ID='{0}',Name='{1}'
45
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
string createfunction=null; //重载构造函数体
46
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
int i=0;
47
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
48
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//拼接出符合上面变量格式的字符串
49
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
foreach(string m_tablefield in TableField.Split(';'))
50
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
51
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
if (m_tablefield.Trim()!="")
52
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
53
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder field=new StringBuilder();
54
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("private "+m_tablefield.Replace(" "," m_")+";/r/n ");
55
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append(string.Format("public {0}/r/n ",m_tablefield));
56
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("{/r/n ");
57
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("get { return m_"+m_tablefield.Split(' ')[1]+"; }/r/n ");
58
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("set { m_"+m_tablefield.Split(' ')[1]+" = value; }/r/n ");
59
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
field.Append("}/r/n ");
60
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
61
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefield+= field.ToString()+"/r/n ";
62
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
63
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefieldname+=m_tablefield.Split(' ')[1]+",";
64
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetablefield+="ie."+m_tablefield.Split(' ')[1]+",";
65
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetableindex+="'{"+i.ToString()+"}',";
66
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
updatevaluetablefield+=m_tablefield.Split(' ')[1]+"='{"+i.ToString()+"}',";
67
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
68
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
createfunction+="m_"+m_tablefield.Split(' ')[1]+"="+m_tablefield.Split(' ')[1]+";/r/n ";
69
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
70
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
i++;
71
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
72
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
73
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//去掉尾部的‘,’号
74
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
tablefieldname=tablefieldname.Substring(0,tablefieldname.Length-1);
75
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetablefield=insertvaluetablefield.Substring(0,insertvaluetablefield.Length-1);
76
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
insertvaluetableindex=insertvaluetableindex.Substring(0,insertvaluetableindex.Length-1);
77
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
updatevaluetablefield=updatevaluetablefield.Substring(0,updatevaluetablefield.Length-1);
78
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
79
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
StringBuilder content=new StringBuilder();
80
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//实体类写入
81
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/dot.gif)
#region
82
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System;/r/n");
83
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using System.Data;/r/n");
84
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("using DbService;/r/n");
85
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n");
86
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("namespace Entity/r/n");
87
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
88
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// <summary>/r/n ");
89
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("/// {0}_Entity 的摘要说明。/r/n ",TableName));
90
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/// </summary>/r/n ");
91
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public class {0}:I{0}Entity/r/n ",TableName));
92
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
93
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//构造函数
94
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public {0}()/r/n ",TableName));
95
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
96
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
97
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// TODO: 在此处添加构造函数逻辑/r/n ");
98
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
99
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("Console.WriteLine(/"create "+TableName+"Entity /");/r/n ");
100
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
101
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
102
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//重载构造函数
103
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public {0}({1})/r/n ",TableName,TableField.Substring(0,TableField.Length-1).Replace(';',',')));
104
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
105
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
106
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// TODO: 在此处添加构造函数逻辑/r/n ");
107
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("// <summary>/r/n ");
108
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(createfunction+"/r/n ");
109
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
110
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
111
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入实体属性字段
112
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(tablefield+"/r/n ");
113
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
114
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
115
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
116
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
117
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
118
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
119
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//实体操作类写入
120
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/dot.gif)
#region
121
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public class {0}DAO:IDao_{0}Entity/r/n ",TableName));
122
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
123
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
124
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Insert(I{0}Entity ie)/r/n ",TableName));
125
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
126
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("string SqlString=String.Format(/"Insert Into
![](http://www.cnblogs.com/Images/dot.gif)
{0} (
![](http://www.cnblogs.com/Images/dot.gif)
{1}) Values (
![](http://www.cnblogs.com/Images/dot.gif)
{2})/",{3});/r/n ",TableName,tablefieldname,insertvaluetableindex,insertvaluetablefield));
127
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DbAccess.InsertSqlString(SqlString);/r/n ");
128
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
129
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
130
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
131
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
132
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//更新函数
133
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Update(I{0}Entity ie)/r/n ",TableName));
134
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
135
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("string SqlString=String.Format(/"Update
![](http://www.cnblogs.com/Images/dot.gif)
{0} Set
![](http://www.cnblogs.com/Images/dot.gif)
{1} /",{2});/r/n ",TableName,updatevaluetablefield,insertvaluetablefield));
136
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("DbAccess.UpdateSqlString(SqlString);/r/n ");
137
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
138
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
139
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
140
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//删除函数
141
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public void Delete(string Condition)/r/n ");
142
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
143
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("DbAccess.Delete(/"
![](http://www.cnblogs.com/Images/dot.gif)
{0}/",Condition);/r/n ",TableName));
144
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
145
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
146
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//查找函数
147
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("public DataTable Find(string SqlString)/r/n ");
148
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
149
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return DbAccess.SelectAllSqlString(SqlString).Tables[0];/r/n ");
150
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
151
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("/r/n ");
152
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//查找函数
153
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("public I{0}Entity Find(int ID)/r/n ",TableName));
154
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
155
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
content.Append(string.Format("DataTable dt=DbAccess.SelectAllSqlString(/"Select Top 1 * From
![](http://www.cnblogs.com/Images/dot.gif)
{0} Where ID=/"+ID.ToString()).Tables[0];/r/n ",TableName));
156
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("if (dt.Rows.Count>0)/r/n ");
157
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("{/r/n ");
158
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append(string.Format("I{0}Entity ie=new {0}();/r/n ",TableName));
159
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("//此处进行数据赋值操作/r/n ");
160
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return ie;/r/n ");
161
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
162
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("return null;/r/n ");
163
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
164
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n");
165
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
content.Append("}/r/n ");
166
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
167
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
168
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
return content.ToString();
169
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
170
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
171
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
172
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
然后用如下代码调用上面的两个函数
173
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
174
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
public void WriteCS_File(string TableName,string TableField)
175
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
176
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入接口文件
177
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
using(FileStream fs = File.Create(Server.MapPath("Test/"+TableName+"_Interface.cs"), 1024))
178
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
179
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
Byte[] info = new UTF8Encoding(true).GetBytes(InterFaceFileContent(TableName,TableField));
180
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
// 向文件写信息
181
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Write(info, 0, info.Length);
182
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Close();
183
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
184
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
185
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
//写入实体文件
186
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
using(FileStream fs = File.Create(Server.MapPath("Test/"+TableName+"_Entity.cs"), 1024))
187
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://blog.csdn.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
188
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
Byte[] info = new UTF8Encoding(true).GetBytes(EntityFileContent(TableName,TableField));
189
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
// 向文件写信息
190
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Write(info, 0, info.Length);
191
![](http://blog.csdn.net/Images/OutliningIndicators/InBlock.gif)
fs.Close();
192
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
193
![](http://blog.csdn.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
194
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
195
![](http://blog.csdn.net/Images/OutliningIndicators/None.gif)
代码写的比较乱,没时间整理,望大家见谅。
源代码
相关文章推荐
- 摆脱CodeSmith,使用页面生成.CS文件
- js代码文件动态生成(此为一张页面的后端cs代码)
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 在一个cs文件里面使用页面提示
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件
- 如何使用protobuf-net生成.cs(c#)文件
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- Asp.net生成Excel文件并下载(解决使用迅雷下载页面而不是文件的问题)
- 使用CodeDom来生成.cs文件
- 使用CodeDom来动态生成.cs文件
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- Asp.net生成l文件并下载-----解决使用迅雷下载页面而不是文件的问题
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 美工作出来的页面都是html格式的~闲来无事~写了个程序用来转换html格式页面为aspx格式,并为之生成cs文件
- 使用代码辅助生成工具CodeSmith -- 生成NHibernate的映射文件
- 使用CodeSmith快速生成映射文件和映射类