codesmith 实体类,数据操作类

<%--  
Name:dd
Author:binbin     
Description: booksir
--%>
<% @ CodeTemplate Language = " C# "  TargetLanguage = " Text "  Src = ""  Inherits = ""  Debug = " False "  Description = " Template description here. "   %>
<% @ Assembly Name = " SchemaExplorer "   %>  
<% @ Import Namespace = " SchemaExplorer "   %>
<% @ Assembly Name = " System.Data "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Property   Name = " SourceTable "    Type = " SchemaExplorer.TableSchema "     Category = " Context "    Description = " 选择一个表 "   %>
<% @ Property Name = " NameSpace "  Type = " System.String "  Default = " SomeValue "  Optional = " True "  Category = " Strings "  Description = " 程序的命名空间 "   %>
/*
代码自动生成工具 codesmith  
Author: lovebanyi 风云
*/

using  System;
using  System.Web;
using  System.Data;
namespace   <%= NameSpace %>
{
    
public class <%=OneToUpper(SourceTable.Name)%>Info
    
{
        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
        
private <%=GetCSharpVariableType(SourceTable.Columns[i])%> <%=OneToLower(SourceTable.Columns[i].Name)%>_;
        
<%}
%>
        
public <%=OneToUpper(SourceTable.Name)%>Info(<%for(int i=0;i<SourceTable.Columns.Count;i++){%><%=GetCSharpVariableType(SourceTable.Columns[i])%> <%=OneToLower(SourceTable.Columns[i].Name)%><%if (i<SourceTable.Columns.Count-1){%>,<%}}%>)
        
{
        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
            
this.<%=OneToLower(SourceTable.Columns[i].Name)%>_=<%=OneToLower(SourceTable.Columns[i].Name)%>;
        
<%}
%>
        }

        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
        
public <%=OneToUpper(SourceTable.Columns[i].Name)%>
        
{
            
get{return <%=OneToLower(SourceTable.Columns[i].Name)%>_;}
        }

        
<%}
%>
    }

    
}

< script runat = " template " >
// 第一个字母大写
private   string  OneToUpper( string  str)
{
    
return str.Substring(0,1).ToUpper()+str.Substring(1);
}

// 第一个字母小写
private   string  OneToLower( string  str)
{
    
return str.Substring(0,1).ToLower()+str.Substring(1);    
}


public   string  GetCSharpVariableType(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 "byte";
        
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;
        }

    }

}

</ script >


<%--  
Name:dd
Author:binbin     
Description: booksir
默认的数据表必须是ID为组件开头
在使用的过程中必须先添加数据库
--%>
<% @ CodeTemplate Language = " C# "  TargetLanguage = " Text "  Src = ""  Inherits = ""  Debug = " False "  Description = " Template description here. "   %>
<% @ Assembly Name = " SchemaExplorer "   %>  
<% @ Import Namespace = " SchemaExplorer "   %>
<% @ Assembly Name = " System.Data "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Property Name = " SourceTable "  Type = " SchemaExplorer.TableSchema "  Category = " Context "  Description = " 选择一个表 "   %>
<% @ Property Name = " NameSpace "  Type = " System.String "  Default = " SomeValue "  Optional = " True "  Category = " Strings "  Description = " 程序的命名空间 "   %>
/*
代码自动生成工具 codesmith  
Author: lovebanyi 风云
*/

using  System;
using  System.Web;
using  System.Data;
using  System.Data.SqlClient;
namespace   <%= NameSpace %>
{
    
public class <%=OneToUpper(SourceTable.Name)%> 
    
{
        
public void Add(<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info)
        
{
            
string sql="insert into <%=SourceTable.Name%>(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>) values(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>@<%=SourceTable.Columns[i].Name%><%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>)";
            SqlParameter parms
=GetParms();
            SetParms(parms,
<%=OneToLower(SourceTable.Name)%>Info);
            SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
        }

        
public void Update(<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info,int id)
        
{
            
string sql="update [<%=SourceTable.Name%>] set <%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]=@<%=SourceTable.Columns[i].Name%><%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%> where id="+id;
            SqlParameter parms
=GetParms();
            SetParms(parms,
<%=OneToLower(SourceTable.Name)%>Info);
            SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
        }

        
public bool Del(int id)
        
{
            
string sql="delect from [<%=SourceTable.Name%>] where id="+id;
            SqlParameter parms
=null;
            
if (SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms)==1)
            
{
                
return true;
            }

            
else
            
{
                
return false;
            }

        }

        
public <%=OneToUpper(SourceTable.Name)%>Info Get(int id)
        
{    
            
string sql="select <%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%> from [<%=SourceTable.Name%>] where id="+id;
            SqlDataReader dr 
= SQLHelper.ExecuteReader(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
if (dr.Read())
            
{
                
<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info = new <%=OneToUpper(SourceTable.Name)%>Info(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>dr.Get<%=SourceTable.Columns[i].SystemType%>(<%=i-1%>)<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>);
                
                
return <%=OneToLower(SourceTable.Name)%>Info;
            }

            
throw new Exception("对不起不存在这条记录");
        }

        
public DataSet GetList()
        
{
            
//这边还用这个方便,以后再考虑生成collection
            string sql="select * from [<%=SourceTable.Name%>]";
            SqlParameter[] parms 
=null;
            
using(SqlConnection conn = new SqlConnection(SQLHelper.CONN_STRING))
            
{
                conn.Open();
                
return SQLHelper.ExcuteDataSet(conn,CommandType.Text,sql,parms);
            }

        }

        
public DataSet GetList(int pageSetup,int toPage,ref int itemCount)
        
{
            SqlParameter[] parms
=null;
            
string sql="select count(*) from [<%=SourceTable.Name%>]";
            SqlDataReader dr 
= SQLHelper.ExecuteReader(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
if (dr.Read())
            
{
                itemCount
=dr.GetInt32(0);    
            }

            sql
="<%=SourceTable.Name%>_Page";
            parms 
= new SqlParameter[]{new SqlParameter("@pageSetup",SqlDbType.Int),new SqlParameter("@toPage",SqlDbType.Int)};
            parms[
0].Value=pageSetup;
            parms[
1].Value=toPage;
            
using (SqlConnection conn = new SqlConnection(SQLHelper.CONN_STRING))
            
{
                conn.Open();
                
return SQLHelper.ExcuteDataSet(conn,CommandType.StoredProcedure,sql,parms);
            }

            
/* 复带存储过程的代码
            CREATE PROCEDURE <%=SourceTable.Name%>_Page @pageSetup int,@topage int AS
            declare @SQLStr nvarchar(4000) 
            set @SQLStr='SELECT Top '+cast(@pageSetup as varchar)+' * FROM [<%=SourceTable.Name%>] WHERE id NOT IN (SELECT TOP '+cast(@pageSetup*@topage as varchar)+' id from [<%=SourceTable.Name%>] )'
            EXECUTE sp_executesql @SQLStr
            
*/
    
        }

        
private SqlParameter[] GetParms()
        
{
            SqlParameter[] parms
=SQLHelper.GetCachedParameters("<%=OneToUpper(SourceTable.Name)%>_Cache");
            
if (parms==null)
            
{
                parms 
= new SqlParameter[]{
                
<%for (int i=1;i<SourceTable.Columns.Count;i++){%>
                
new SqlParameter("@<%=SourceTable.Columns[i].Name%>",SqlDbType.<%=GetSqlParms(SourceTable.Columns[i])%>)<%if (i<SourceTable.Columns.Count-1){%>,<%}%>
                
<%}
%>
                }
;
                SQLHelper.CacheParameters(
"<%=OneToUpper(SourceTable.Name)%>_Cache",parms);
            }

            
return parms
        }

        
private void SetParms(SqlParameter[] parms,<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info)
        
{
            
<%for (int i=1;i<SourceTable.Columns.Count;i++){%>
            parms[
<%=i.ToString()%>].Value=<%=OneToLower(SourceTable.Name)%>Info.<%=OneToUpper(SourceTable.Columns[i].Name)%>
            
<%}
%>
        }

    }

    
}

< script runat = " template " >
// 第一个字母大写
private   string  OneToUpper( string  str)
{
    
return str.Substring(0,1).ToUpper()+str.Substring(1);
}

// 第一个字母小写
private   string  OneToLower( string  str)
{
    
return str.Substring(0,1).ToLower()+str.Substring(1);    
}

private   string  GetSqlParms(ColumnSchema column)
{
    
switch(column.NativeType)
    
{
        
case "varchar"return "VarChar,"+column.Size.ToString();
        
case "int"return "Int";
        
case "datetime"return "DateTime";
        
case "money"return "Money";
        
case "text"return "Text";
        
default :
        
{
            
return "";
        }

    }

}

public   string  GetCSharpVariableType(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 "byte";
        
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;
        }

    }

}

</ script >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值