上次我们说了怎样访问数据库,现在我们接下来说怎样根据访问的表写模板,首先:我们来看看他声明的SourceTable的属性:
SourceTable.Columns[i]:指的是数据库的第I列。
SourceTable.Columns[i].Name:第I列的字段名。
SourceTable.Columns[i].NativeType:第I列的字段类型。
SourceTable.Columns[i].Size:第I列字段的大小。
SourceTable.Columns.Count:表的行数。
SourceTable.Columns[i].Description:第I列的描述信息
根据以上,我们可以写出以下的模板了:
CodeSmith(4)<%@ CodeTemplate Language="C#" TargetLanguage="T-SQL"
CodeSmith(4)        Description
="Generates a update stored procedure." %>
CodeSmith(4)
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema"
CodeSmith(4)       Category
="Context"
CodeSmith(4)        Description
="Table that the stored procedures should be based on." %>        
CodeSmith(4)
<%@ Assembly Name="SchemaExplorer" %>
CodeSmith(4)
<%@ Import Namespace="SchemaExplorer" %>
CodeSmith(4) 
-----------------------------------------------------------------
CodeSmith(4) 
-- Date Created: <%= DateTime.Now.ToLongDateString() %>
CodeSmith(4) 
-- Created By:   guojiang
CodeSmith(4) 
-----------------------------------------------------------------
CodeSmith(4)
<script runat="template">
CodeSmith(4)  
public string GetSqlParameterStatement(ColumnSchema column)

运行之后的结果为:
CodeSmith(4)-----------------------------------------------------------------
CodeSmith(4) 
-- Date Created: 2007年4月25日
CodeSmith(4) 
-- Created By:   guojiang
CodeSmith(4) 
-----------------------------------------------------------------
CodeSmith(4)
CodeSmith(4)
//离职部门管理号 
CodeSmith(4)
//类型 varchar(2)
CodeSmith(4)
this.txtManageNo.Text=model.ManageNo
CodeSmith(4)
CodeSmith(4)
//一二级部门管理号 
CodeSmith(4)
//类型 varchar(3)
CodeSmith(4)
this.txtDeptCode.Text=model.DeptCode
CodeSmith(4)
CodeSmith(4)
//一二级部门名称 
CodeSmith(4)
//类型 varchar(50)
CodeSmith(4)
this.txtDeptName.Text=model.DeptName
CodeSmith(4)
CodeSmith(4)
// 
CodeSmith(4)
//类型 datetime
CodeSmith(4)
this.txtRecordCreateDate.Text=model.RecordCreateDate
CodeSmith(4)
CodeSmith(4)
// 
CodeSmith(4)
//类型 varchar(32)
CodeSmith(4)
this.txtRecordCreator.Text=model.RecordCreator
CodeSmith(4)
CodeSmith(4)
// 
CodeSmith(4)
//类型 datetime
CodeSmith(4)
this.txtRecordUpdateDate.Text=model.RecordUpdateDate
CodeSmith(4)
CodeSmith(4)
// 
CodeSmith(4)
//类型 varchar(32)
CodeSmith(4)
this.txtRecordUpdator.Text=model.RecordUpdator
CodeSmith(4)    
CodeSmith(4)    
CodeSmith(4)
//离职部门管理号 
CodeSmith(4)
//类型 varchar(2)
CodeSmith(4)
model.ManageNo=this.txtManageNo.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
//一二级部门管理号 
CodeSmith(4)
//类型 varchar(3)
CodeSmith(4)
model.DeptCode=this.txtDeptCode.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
//一二级部门名称 
CodeSmith(4)
//类型 varchar(50)
CodeSmith(4)
model.DeptName=this.txtDeptName.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
// 
CodeSmith(4)
//类型 datetime
CodeSmith(4)
model.RecordCreateDate=this.txtRecordCreateDate.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
// 
CodeSmith(4)
//类型 varchar(32)
CodeSmith(4)
model.RecordCreator=this.txtRecordCreator.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
// 
CodeSmith(4)
//类型 datetime
CodeSmith(4)
model.RecordUpdateDate=this.txtRecordUpdateDate.Text.Trim()
CodeSmith(4)    
CodeSmith(4)
// 
CodeSmith(4)
//类型 varchar(32)
CodeSmith(4)
model.RecordUpdator=this.txtRecordUpdator.Text.Trim()
CodeSmith(4)
CodeSmith(4)

相关文章: