<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Template description here." %> <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Optional="True" Description="the table name" %> <%@ Assembly Name="SchemaExplorer" %> <%@ Import Namespace="SchemaExplorer" %> <%@ Assembly Name="CodeSmith.BaseTemplates" %> <%@ Import Namespace="CodeSmith.BaseTemplates" %> <%@ Assembly Name="CodeSmith.CustomProperties" %> <%@ Import Namespace="CodeSmith.CustomProperties" %> <%@ Property Name="ConnectionTypeName" Type="ConnectionType" Category="数据源连接类型" %> <script runat="template"> public enum ConnectionType { SqlHelper, MySqlHelper, OleDbHelper } public string GetParameterTypeName() { switch(ConnectionTypeName) { case ConnectionType.SqlHelper:return "SqlParameter"; case ConnectionType.MySqlHelper:return "MySqlParameter"; case ConnectionType.OleDbHelper:return "OleDbParameter"; default:return "SqlParameter"; } } </script> public bool Update(Model.<%=this.SourceTable.Name.Substring(0,1).ToUpper() %><%=this.SourceTable.Name.Substring(1) %>Model model) { StringBuilder commandText=new StringBuilder(); <% string cols=string.Empty; foreach(ColumnSchema col in this.SourceTable.Columns) { cols+=col.Name+","; } cols=cols.Remove(cols.Length-1); string[] strParamNames=cols.Split(','); %> commandText.Append("update <%=this.SourceTable.Name %> set "); <% for(int i=0;i<strParamNames.Length-1;i++) {%> commandText.Append("<%=strParamNames[i] %>=@<%=strParamNames[i] %>,"); <%}%> commandText.Append("<%=strParamNames[strParamNames.Length-1] %>=@<%=strParamNames[strParamNames.Length-1] %>"); commandText.Append(" where <%=strParamNames[0] %>=@<%=strParamNames[0] %>"); <%=GetParameterTypeName() %>[] commandParameters = { <% for(int i=0;i<strParamNames.Length-1;i++) {%> new <%=GetParameterTypeName() %>("@<%=strParamNames[i] %>", model.<%=strParamNames[i].Substring(0,1).ToUpper() %><%=strParamNames[i].Substring(1) %>), <%}%> new <%=GetParameterTypeName() %>("@<%=strParamNames[strParamNames.Length-1] %>", model.<%=strParamNames[strParamNames.Length-1].Substring(0,1).ToUpper() %><%=strParamNames[strParamNames.Length-1].Substring(1) %>) }; int rows=DBUtility.<%=ConnectionTypeName %>.ExecuteNonQuery(commandText.ToString(),commandParameters); if (rows > 0) { return true; } else { return false; } }