CodeSmith使用第二回(再看你一回)存储过程篇

今天看了看几个例子,练习了如何生成数据库存储过程,感觉很爽啊!哈哈
 1 <%@ CodeTemplate Language="C#" TargetLanguage="T-SQL" Src="" Inherits="" Debug="False" Description="Template description here." %>
 2 <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Description="????-??." %>
 3 <%@ Assembly Name="SchemaExplorer" %>
 4 <%@ Import Namespace="SchemaExplorer" %>
 5 <script runat="template">
 6 public string getParameter(ColumnSchema col)
 7 {
 8 String parameter="@"+col.Name+" "+col.NativeType;
 9 switch(col.DataType)
10 {
11 case DbType.Decimal:
12 {
13 parameter+="("+col.Precision+","+col.Scale+")";
14 break;
15 }
16 default:
17 {
18 if(col.Size>0)
19 {
20 parameter+="("+col.Size+")";
21 }
22 break;
23 }
24 }
25 return parameter;
26 }
27 </script>
28 create procedure dbo.Delete<%=SourceTable.Name%>
29 <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
30 <%=getParameter(SourceTable.PrimaryKey.MemberColumns[i])%>
31 <% if(i>0){%>,<%}%>
32 <%}%>
33 AS
34 delete * from <%=SourceTable.Name%>
35 where
36 <%for (int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
37 <%if( i>0){%>and<%}%>
38 <%=SourceTable.PrimaryKey.MemberColumns[i].Name%>=@<%=SourceTable.PrimaryKey.MemberColumns[i].Name%>
39 <%}%>
首先这是一个把模板编译成代码的IDE,可以用C#和vb.net编写代码,点击为选择的数据库表生成删除的存储过程,很爽哦,再来个更新的,^_^
update
菜鸟火速进步中,前人铺好路,学起来也比较轻松,偶尔要加上自己的一点小创意啊,哈哈!
posted @ 2007-08-28 19:36  Awen  阅读(433)  评论(2编辑  收藏  举报