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列的描述信息
根据以上,我们可以写出以下的模板了:
Description="Generates a update stored procedure." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema"
Category="Context"
Description="Table that the stored procedures should be based on." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
-----------------------------------------------------------------
-- Date Created: <%= DateTime.Now.ToLongDateString() %>
-- Created By: guojiang
-----------------------------------------------------------------
<script runat="template">
public string GetSqlParameterStatement(ColumnSchema column)
{
string param =column.NativeType;
switch (column.DataType)
{
case DbType.Decimal:
{
param += "(" + column.Precision + ", " + column.Scale + ")";
break;
}
default:
{
if (column.Size > 0) {
param += "(" + column.Size + ")";
}
break;
}
}
return param;
}
</script>
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
//<%=SourceTable.Columns[i].Description%>
//类型 <%=GetSqlParameterStatement(SourceTable.Columns[i])%>
this.txt<%= SourceTable.Columns[i].Name %>.Text=model.<%= SourceTable.Columns[i].Name %>
<% } %>
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
//<%=SourceTable.Columns[i].Description%>
//类型 <%=GetSqlParameterStatement(SourceTable.Columns[i])%>
model.<%= SourceTable.Columns[i].Name %>=this.txt<%= SourceTable.Columns[i].Name %>.Text.Trim()
<% } %>
运行之后的结果为:
-- Date Created: 2007年4月25日
-- Created By: guojiang
-----------------------------------------------------------------
//离职部门管理号
//类型 varchar(2)
this.txtManageNo.Text=model.ManageNo
//一二级部门管理号
//类型 varchar(3)
this.txtDeptCode.Text=model.DeptCode
//一二级部门名称
//类型 varchar(50)
this.txtDeptName.Text=model.DeptName
//
//类型 datetime
this.txtRecordCreateDate.Text=model.RecordCreateDate
//
//类型 varchar(32)
this.txtRecordCreator.Text=model.RecordCreator
//
//类型 datetime
this.txtRecordUpdateDate.Text=model.RecordUpdateDate
//
//类型 varchar(32)
this.txtRecordUpdator.Text=model.RecordUpdator
//离职部门管理号
//类型 varchar(2)
model.ManageNo=this.txtManageNo.Text.Trim()
//一二级部门管理号
//类型 varchar(3)
model.DeptCode=this.txtDeptCode.Text.Trim()
//一二级部门名称
//类型 varchar(50)
model.DeptName=this.txtDeptName.Text.Trim()
//
//类型 datetime
model.RecordCreateDate=this.txtRecordCreateDate.Text.Trim()
//
//类型 varchar(32)
model.RecordCreator=this.txtRecordCreator.Text.Trim()
//
//类型 datetime
model.RecordUpdateDate=this.txtRecordUpdateDate.Text.Trim()
//
//类型 varchar(32)
model.RecordUpdator=this.txtRecordUpdator.Text.Trim()