安装后
破解
将两个dll烤到安装目录下!
自己制作CodeTemplateRule
将CodeSmith.Engine(在bin目录里)和SchemaExplorer(在AddIns目录里) 两个类添加到引用
using System;
using System.Text;
using System.ComponentModel;
using CodeSmith.Engine;
using System.Data;
using SchemaExplorer;
namespace CodeTemplateRule
{
/**/
/// <summary>
/// CodeSmith自动生成代码所用到的函数
/// </summary>
public class CodeTemplateRule
{
/**/
/// <summary>
/// 获取所有列的集合
/// </summary>
/// <param name="dataBase">数据库Schema</param>
/// <param name="tableName">表名</param>
/// <returns>Columns Schema</returns>
public ColumnSchemaCollection GetColumnCollection(DatabaseSchema dataBase, string tableName)
{
TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);
ColumnSchemaCollection columns = null;
for (int i = 0; i < tables.Count; i++)
{
if (tables[i].Name.ToUpper() == tableName.ToUpper())
{
TableSchema ts = tables[i];
columns = new ColumnSchemaCollection(ts.Columns);
}
}
return columns;
}
/**/
/// <summary>
/// 获取处理后的表名 例如:ORG_Person,返回Person
/// </summary>
/// <param name="tableName">表名</param>
/// <returns>返回处理后的表名</returns>
public string GetTableName(string tableName)
{
int i = tableName.IndexOf("_");
return tableName.Substring(i + 1, tableName.Length - (i + 1));
}
/**/
/// <summary>
/// 获取唯一号的变量名,第一个字母小写
/// </summary>
/// <param name="guidColumn">唯一号列名</param>
/// <returns>唯一号的变量名</returns>
public string GetGuidColumnVar(string guidColumn)
{
string guid;
guid = guidColumn.Substring(0, 1).ToLower() + guidColumn.Substring(1, guidColumn.Length - 1);
return guid;
}
/**/
/// <summary>
/// 获取c#变量类型
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型</returns>
public string GetType(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "string";
case DbType.AnsiStringFixedLength: return "string";
case DbType.Binary: return "byte[]";
case DbType.Boolean: return "bool";
case DbType.Byte: return "int";
case DbType.Currency: return "decimal";
case DbType.Date: return "DateTime";
case DbType.DateTime: return "DateTime";
case DbType.Decimal: return "decimal";
case DbType.Double: return "double";
case DbType.Guid: return "Guid";
case DbType.Int16: return "short";
case DbType.Int32: return "int";
case DbType.Int64: return "long";
case DbType.Object: return "object";
case DbType.SByte: return "sbyte";
case DbType.Single: return "float";
case DbType.String: return "string";
case DbType.StringFixedLength: return "string";
case DbType.Time: return "TimeSpan";
case DbType.UInt16: return "ushort";
case DbType.UInt32: return "uint";
case DbType.UInt64: return "ulong";
case DbType.VarNumeric: return "decimal";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
/**/
/// <summary>
/// 获取c#变量类型默认值
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型默认值</returns>
public string GetDefaultValue(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "\"\"";
case DbType.AnsiStringFixedLength: return "\"\"";
case DbType.Binary: return "null";
case DbType.Boolean: return "false";
case DbType.Byte: return "0";
case DbType.Currency: return "0";
case DbType.Date: return "DateTime.Parse(\"1900-1-1\")";
case DbType.DateTime: return "DateTime.Parse(\"1900-1-1\")";
case DbType.Decimal: return "0";
case DbType.Double: return "0";
case DbType.Guid: return "Guid.NewGuid().ToString()";
case DbType.Int16: return "0";
case DbType.Int32: return "0";
case DbType.Int64: return "0";
case DbType.Object: return "\"\"";
case DbType.SByte: return "0";
case DbType.Single: return "0";
case DbType.String: return "\"\"";
case DbType.StringFixedLength: return "";
case DbType.Time: return "DateTime.Parse(\"1900-1-1\")";
case DbType.UInt16: return "0";
case DbType.UInt32: return "0";
case DbType.UInt64: return "0";
case DbType.VarNumeric: return "0";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
/**/
/// <summary>
/// 获取c#变量类型默认值
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型默认值</returns>
public string GetConvert(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "Convert.ToString";
case DbType.AnsiStringFixedLength: return "Convert.ToString";
case DbType.Binary: return "Convert.ToByte";
case DbType.Boolean: return "Convert.ToBoolean";
case DbType.Byte: return "Convert.ToInt32";
case DbType.Currency: return "Convert.ToDecimal";
case DbType.Date: return "Convert.DateTime";
case DbType.DateTime: return "Convert.DateTime";
case DbType.Decimal: return "Convert.ToDecimal";
case DbType.Double: return "Convert.ToDouble";
case DbType.Guid: return "Convert.ToString";
case DbType.Int16: return "Convert.ToInt16";
case DbType.Int32: return "Convert.ToInt32";
case DbType.Int64: return "Convert.ToInt64";
case DbType.Object: return "Convert.ToString";
case DbType.SByte: return "Convert.ToByte";
case DbType.Single: return "Convert.ToInt32";
case DbType.String: return "Convert.ToString";
case DbType.StringFixedLength: return "Convert.ToString";
case DbType.Time: return "Convert.DateTime";
case DbType.UInt16: return "Convert.ToUInt16";
case DbType.UInt32: return "Convert.ToUInt32";
case DbType.UInt64: return "Convert.ToUInt64";
case DbType.VarNumeric: return "Convert.ToDecimal";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
}
}
using System.Text;
using System.ComponentModel;
using CodeSmith.Engine;
using System.Data;
using SchemaExplorer;
namespace CodeTemplateRule
{
/**/
/// <summary>
/// CodeSmith自动生成代码所用到的函数
/// </summary>
public class CodeTemplateRule
{
/**/
/// <summary>
/// 获取所有列的集合
/// </summary>
/// <param name="dataBase">数据库Schema</param>
/// <param name="tableName">表名</param>
/// <returns>Columns Schema</returns>
public ColumnSchemaCollection GetColumnCollection(DatabaseSchema dataBase, string tableName)
{
TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);
ColumnSchemaCollection columns = null;
for (int i = 0; i < tables.Count; i++)
{
if (tables[i].Name.ToUpper() == tableName.ToUpper())
{
TableSchema ts = tables[i];
columns = new ColumnSchemaCollection(ts.Columns);
}
}
return columns;
}
/**/
/// <summary>
/// 获取处理后的表名 例如:ORG_Person,返回Person
/// </summary>
/// <param name="tableName">表名</param>
/// <returns>返回处理后的表名</returns>
public string GetTableName(string tableName)
{
int i = tableName.IndexOf("_");
return tableName.Substring(i + 1, tableName.Length - (i + 1));
}
/**/
/// <summary>
/// 获取唯一号的变量名,第一个字母小写
/// </summary>
/// <param name="guidColumn">唯一号列名</param>
/// <returns>唯一号的变量名</returns>
public string GetGuidColumnVar(string guidColumn)
{
string guid;
guid = guidColumn.Substring(0, 1).ToLower() + guidColumn.Substring(1, guidColumn.Length - 1);
return guid;
}
/**/
/// <summary>
/// 获取c#变量类型
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型</returns>
public string GetType(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "string";
case DbType.AnsiStringFixedLength: return "string";
case DbType.Binary: return "byte[]";
case DbType.Boolean: return "bool";
case DbType.Byte: return "int";
case DbType.Currency: return "decimal";
case DbType.Date: return "DateTime";
case DbType.DateTime: return "DateTime";
case DbType.Decimal: return "decimal";
case DbType.Double: return "double";
case DbType.Guid: return "Guid";
case DbType.Int16: return "short";
case DbType.Int32: return "int";
case DbType.Int64: return "long";
case DbType.Object: return "object";
case DbType.SByte: return "sbyte";
case DbType.Single: return "float";
case DbType.String: return "string";
case DbType.StringFixedLength: return "string";
case DbType.Time: return "TimeSpan";
case DbType.UInt16: return "ushort";
case DbType.UInt32: return "uint";
case DbType.UInt64: return "ulong";
case DbType.VarNumeric: return "decimal";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
/**/
/// <summary>
/// 获取c#变量类型默认值
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型默认值</returns>
public string GetDefaultValue(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "\"\"";
case DbType.AnsiStringFixedLength: return "\"\"";
case DbType.Binary: return "null";
case DbType.Boolean: return "false";
case DbType.Byte: return "0";
case DbType.Currency: return "0";
case DbType.Date: return "DateTime.Parse(\"1900-1-1\")";
case DbType.DateTime: return "DateTime.Parse(\"1900-1-1\")";
case DbType.Decimal: return "0";
case DbType.Double: return "0";
case DbType.Guid: return "Guid.NewGuid().ToString()";
case DbType.Int16: return "0";
case DbType.Int32: return "0";
case DbType.Int64: return "0";
case DbType.Object: return "\"\"";
case DbType.SByte: return "0";
case DbType.Single: return "0";
case DbType.String: return "\"\"";
case DbType.StringFixedLength: return "";
case DbType.Time: return "DateTime.Parse(\"1900-1-1\")";
case DbType.UInt16: return "0";
case DbType.UInt32: return "0";
case DbType.UInt64: return "0";
case DbType.VarNumeric: return "0";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
/**/
/// <summary>
/// 获取c#变量类型默认值
/// </summary>
/// <param name="column">列</param>
/// <returns>c#变量类型默认值</returns>
public string GetConvert(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: return "Convert.ToString";
case DbType.AnsiStringFixedLength: return "Convert.ToString";
case DbType.Binary: return "Convert.ToByte";
case DbType.Boolean: return "Convert.ToBoolean";
case DbType.Byte: return "Convert.ToInt32";
case DbType.Currency: return "Convert.ToDecimal";
case DbType.Date: return "Convert.DateTime";
case DbType.DateTime: return "Convert.DateTime";
case DbType.Decimal: return "Convert.ToDecimal";
case DbType.Double: return "Convert.ToDouble";
case DbType.Guid: return "Convert.ToString";
case DbType.Int16: return "Convert.ToInt16";
case DbType.Int32: return "Convert.ToInt32";
case DbType.Int64: return "Convert.ToInt64";
case DbType.Object: return "Convert.ToString";
case DbType.SByte: return "Convert.ToByte";
case DbType.Single: return "Convert.ToInt32";
case DbType.String: return "Convert.ToString";
case DbType.StringFixedLength: return "Convert.ToString";
case DbType.Time: return "Convert.DateTime";
case DbType.UInt16: return "Convert.ToUInt16";
case DbType.UInt32: return "Convert.ToUInt32";
case DbType.UInt64: return "Convert.ToUInt64";
case DbType.VarNumeric: return "Convert.ToDecimal";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}
}
}
将 重新编译生成的CodeTemplateRule拷贝到 codesmith目录下的 两个文件夹中
模板页中添加引用


<%--
Name:模板
Author: awp
Description: 生成模板
--%>
<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" TargetLanguage="Text" Description="Template description here." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Assembly Name="CodeTemplateRule" %>
<%@ Import Namespace="CodeTemplateRule" %>
<%--模板属性--%>
<%@ Property Name="DataBase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="数据库连接." %>
<%@ Property Name="TableName" Type="System.String" Default="t_User" Optional="False" Category="" Description="表名" %>
<%@ Property Name="Model" Type="System.String" Default="Bs.Model" Optional="False" Category="" Description="实体类命名空间" %>
<%@ Property Name="DAL" Type="System.String" Default="Bs.DAL" Optional="False" Category="" Description="数据层命名空间" %>
<%@ Property Name="BLL" Type="System.String" Default="Bs.BLL" Optional="False" Category="" Description="业务逻辑层命名空间" %>
<%@ Property Name="SQLHelper" Type="System.String" Default="Bs.SQLHelper" Optional="False" Category="" Description="数据操作层命名空间" %>
<%@ Property Name="Author" Type="System.String" Default="awp" Optional="False" Category="" Description="作者" %>
<%@ Property Name="Description" Type="System.String" Default="实体类" Optional="False" Category="" Description="该类的描述" %>
<script runat="template">
CodeTemplateRule rule=new CodeTemplateRule();
</script>
using System;
namespace <%= Model %>
{
/// <summary>
/// 实体类:<%= rule.GetTableName(TableName) %>Info 数据实体
/// 描述:<%
TableSchema table=DataBase.Tables["t_"+rule.GetTableName(TableName)];
%>
/// 作者:<%= Author %>
/// 日期:<%= DateTime.Now.ToString() %>
///</summary>
public class <%= rule.GetTableName(TableName) %>Info
{
#region 变量定义
<%
ColumnSchemaCollection columns=rule.GetColumnCollection(DataBase,TableName);
for(int i=0;i<columns.Count;i++)
{
string des="";
if(columns[i].Description.Length>0)
{
des=columns[i].Description;
}
switch(rule.GetType(columns[i]))
{
case "int":
%>
private int _<%=columns[i].Name%>;//<%=des%>
<%
break;
case "string":
%>
private string _<%=columns[i].Name%>;//<%=des%>
<%
break;
case "DateTime":
%>
private DateTime _<%=columns[i].Name%>;//<%=des%>
<%
break;
default:
%>
private string _<%=columns[i].Name%>;//<%=des%>
<%
break;
}
}
%>
#endregion 变量定义
///<summary>
///构造函数
///</summary>
public <%= rule.GetTableName(TableName)+"Info()" %>
{
<%
for(int i=0;i<columns.Count;i++)
{
switch(rule.GetType(columns[i]))
{
case "int":
Response.Write(" _"+columns[i].Name+" = int.MaxValue;\r\n");
break;
case "string":
Response.Write(" _"+columns[i].Name+" = null;\r\n");
break;
case "DateTime":
Response.Write(" _"+columns[i].Name+" = DateTime.MinValue;\r\n");
break;
default:
Response.Write(" _"+columns[i].Name+" = null;\r\n");
break;
}
}
%>
}
#region 公共属性
<%
for(int i=0;i<columns.Count;i++)
{
%>
///<summary>
///<%if(columns[i].Description.Length>0){ Response.Write(columns[i].Description);}else{Response.Write(columns[i].Name);}%>
///</summary>
public <%= rule.GetType(columns[i]) %> <%= columns[i].Name%>
{
get{
return _<%= columns[i].Name %>;
}
set{
_<%= columns[i].Name %>=value;
}
}
<%
}
%>
#endregion 公共属性
}
}
**********************************************************
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using <%=SQLHelper%>;
using <%=Model%>;
namespace <%=DAL %>
{
/// <summary>
/// 数据操作层类:DAL<%= rule.GetTableName(TableName) %>
/// 描述:<%
%>
/// 作者:<%= Author %>
/// 日期:<%= DateTime.Now.ToString() %>
///</summary>
public class DAL<%= rule.GetTableName(TableName) %>
{
/// <summary>
/// 构造函数
/// </summary>
public DAL<%= rule.GetTableName(TableName) %>(string tableName)
{
this.TableName = tableName;
}
#region 重写继承的DataBase类的的方法 (为了实现多表的功能)
public override int GetCountVir(string sqlStr)
{
return SqlHelper.ExecuteNonQuery(sqlStr, null);
}
public override int GetSumVir(string sqlStr)
{
return SqlHelper.ExecuteNonQuery(sqlStr, null);
}
public override SqlDataReader GetListDrVir(string sqlStr)
{
return SqlHelper.ExecuteReader(sqlStr);
}
public override DataSet GetListDsVir(string sqlStr)
{
return SqlHelper.ExecuteDataset(sqlStr);
}
public override DataTable GetListDtVir(string sqlStr)
{
return SqlHelper.ExecuteDataset(sqlStr).Tables[0];
}
public override bool ExistsVir(string sqlStr)
{
if (SqlHelper.ExecuteNonQuery(sqlStr, null) > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region Add增加一条数据
/// <summary>
/// 增加一条数据
/// </summary>
/// <param name="model">实体类</param>
/// <returns>新增数据的ID</returns>
public int Add(<%= rule.GetTableName(TableName) %>Info model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into t_<%= rule.GetTableName(TableName) %>(");
<%string sqlStr="";
string sqlStr2="";
for(int i=0;i<columns.Count;i++)
{
if(i+1==columns.Count)
{
sqlStr+=columns[i].Name;
sqlStr2+="@"+columns[i].Name;
}
else
{
sqlStr+=columns[i].Name+",";
sqlStr2+="@"+columns[i].Name+",";
}
}%>
strSql.Append("<%=sqlStr%>");
strSql.Append(")");
strSql.Append(" values (");
strSql.Append("<%=sqlStr2%>");
strSql.Append(")");
strSql.Append(";select @@IDENTITY");
//获取参数
SqlParameter[] parameters = GetParameters("<%=rule.GetTableName(TableName)%>Add");
<%
for(int i=0;i<columns.Count;i++)
{
%>
parameters[<%=i%>].Value = model.<%=columns[i].Name%>;
<%
}
%>
int ID = int.Parse(SqlHelper.ExecuteScalar(strSql.ToString(), parameters).ToString());
OnAdd(ID);//可以表示在添加前还是后执行这个事件
//比如在 注册事件中应该是 添加成功后进行登入操作
return ID;
}
#endregion
#region Update 更新
public bool Update(<%= rule.GetTableName(TableName) %>Info model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update t_<%= rule.GetTableName(TableName) %> set ");
SqlParameter[] parms = {
new SqlParameter("@ID", SqlDbType.Int, 4)
};
parms[0].Value = model.ID;
int j = 1;
<%
for(int i=0;i<columns.Count;i++)
{
if(columns[i].Name!="ID")
{
switch(rule.GetType(columns[i]))
{
case "int":
%>
if (model.<%=columns[i].Name%> != int.MaxValue)
{
strSql.Append(" <%=columns[i].Name%>=@<%=columns[i].Name%>,");
Array.Resize<SqlParameter>(ref parms, parms.Length + 1);
parms[j] = new SqlParameter("@<%=columns[i].Name%>", SqlDbType.Int,<%=columns[i].Size%>);
parms[j].Value = model.<%=columns[i].Name%>;
j = j + 1;
}
<%
break;
case "string":
%>
if (model.<%=columns[i].Name%> != null)
{
strSql.Append(" <%=columns[i].Name%>=@<%=columns[i].Name%>,");
Array.Resize<SqlParameter>(ref parms, parms.Length + 1);
parms[j] = new SqlParameter("@<%=columns[i].Name%>", SqlDbType.VarChar,<%=columns[i].Size%>);
parms[j].Value = model.<%=columns[i].Name%>;
j = j + 1;
}
<%
break;
case "DateTime":
%>
if (model.<%=columns[i].Name%> != DateTime.MinValue)
{
strSql.Append(" <%=columns[i].Name%>=@<%=columns[i].Name%>,");
Array.Resize<SqlParameter>(ref parms, parms.Length + 1);
parms[j] = new SqlParameter("@<%=columns[i].Name%>", SqlDbType.DateTime);
parms[j].Value = model.<%=columns[i].Name%>;
j = j + 1;
}
<%
break;
default:
%>
if (model.<%=columns[i].Name%> != null)
{
strSql.Append(" Address=@Address,");
Array.Resize<SqlParameter>(ref parms, parms.Length + 1);
parms[j] = new SqlParameter("@Address", SqlDbType.VarChar, 200);
parms[j].Value = model.Address;
j = j + 1;
}
<%
break;
}
}
}
%>
strSql = strSql.Remove(strSql.Length - 1, 1);
strSql.Append(" where ID=@ID");
if (SqlHelper.ExecuteNonQuery(strSql.ToString(), parms) > 0)
{
OnUpdate("");
return true;
}
else
{
return false;
}
}
#endregion
#region GetModel 得到一个实体对象
/// <summary>
/// 得到一个实体对象
/// </summary>
/// <param name="ID">主键ID</param>
/// <returns></returns>
public <%= rule.GetTableName(TableName) %>Info GetModel(int ID)
{
StringBuilder strSql = new StringBuilder();
<% sqlStr="";
for(int i=0;i<columns.Count;i++)
{
if(i+1==columns.Count)
{
sqlStr+=columns[i].Name;
}
else
{
sqlStr+=columns[i].Name+",";
}
}%>
strSql.Append("SELECT <%=sqlStr%> FROM t_<%= rule.GetTableName(TableName) %> ");
strSql.Append(" where ID=@ID ");
SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4)};
parameters[0].Value = ID;
<%= rule.GetTableName(TableName) %>Info model = new <%= rule.GetTableName(TableName) %>Info();
using (SqlDataReader dr = SqlHelper.ExecuteReader(strSql.ToString(), parameters))
{
while (dr.Read())
{
<%
for(int i=0;i<columns.Count;i++)
{
switch(rule.GetType(columns[i]))
{
case "int":
%>
model.<%=columns[i].Name%> = dr.GetInt32(<%=i%>);
<%
break;
case "string":
%>
model.<%=columns[i].Name%> = dr.GetString(<%=i%>);
<%
break;
case "DateTime":
%>
model.<%=columns[i].Name%> = dr.GetDateTime(<%=i%>);
<%
break;
default:
%>
<%
break;
}
}
%>
}
}
return model;
}
/// <summary>
/// 得到一个实体对象
/// </summary>
/// <param name="where">where条件 eg: name='awp'</param>
/// <returns></returns>
public <%= rule.GetTableName(TableName) %>Info GetModel(string where)
{
StringBuilder strSql = new StringBuilder();
<% sqlStr="";
for(int i=0;i<columns.Count;i++)
{
if(i+1==columns.Count)
{
sqlStr+=columns[i].Name;
}
else
{
sqlStr+=columns[i].Name+",";
}
}%>
strSql.Append("SELECT <%=sqlStr%> FROM t_<%= rule.GetTableName(TableName) %> ");
if (!string.IsNullOrEmpty(where))
{
strSql.Append(" where " + where);
}
<%= rule.GetTableName(TableName) %>Info model = new <%= rule.GetTableName(TableName) %>Info();
using (SqlDataReader dr = SqlHelper.ExecuteReader(strSql.ToString(), null))
{
while (dr.Read())
{
<%
for(int i=0;i<columns.Count;i++)
{
switch(rule.GetType(columns[i]))
{
case "int":
%>
model.<%=columns[i].Name%> = dr.GetInt32(<%=i%>);
<%
break;
case "string":
%>
model.<%=columns[i].Name%> = dr.GetString(<%=i%>);
<%
break;
case "DateTime":
%>
model.<%=columns[i].Name%> = dr.GetDateTime(<%=i%>);
<%
break;
default:
%>
<%
break;
}
}
%>
}
}
return model;
}
#endregion
#region 参数处理
private static SqlParameter[] GetParameters(string Keys)
{
//从缓存中获取参数 如果不存在 重新生成
SqlParameter[] parms = SqlHelper.GetCachedParameters(Keys);
if (parms == null)
{
parms = new SqlParameter[] {
<%
for(int i=0;i<columns.Count;i++)
{
switch(rule.GetType(columns[i]))
{
case "int":
%>
new SqlParameter("@<%=columns[i].Name%>", SqlDbType.Int,<%=columns[i].Size%>),
<%
break;
case "string":
%>
new SqlParameter("@<%=columns[i].Name%>", SqlDbType.VarChar,<%=columns[i].Size%>),
<%
break;
case "DateTime":
%>
new SqlParameter("@<%=columns[i].Name%>", SqlDbType.DateTime),
<%
break;
default:
%>
new SqlParameter("@<%=columns[i].Name%>", SqlDbType.<%=rule.GetType(columns[i])%>),
<%
break;
}
}
%>
};
SqlHelper.CacheParameters(Keys, parms);
}
return parms;
}
#endregion
}
}