Name:OracleModel

Author: 小谈

Description: 根据指定的数据库生成业务逻辑类模板

--%>

///

// File: .cs

// Description: Enter summary here after generation.

// ---------------------

// Copyright Our Client

// ---------------------

// History

//            Original Version

///

using System;

namespace

{

///

/// 实体类(属性说明自动提取数据库字段的描述信息)

///

[Serializable]

public class

{

public ()

{}

#region Model

#endregion

}

}

// My methods here.

//截取字符串前面的小数点只显示后面的字符串

public string GetDecimal(TableSchema table)

{

return table.Name.Substring(table.Name.LastIndexOf(".")+1).ToString();

}

//判断数据类型是否为空

public string IsNull(ColumnSchema column)

{

if(column.AllowDBNull)

{

return "?";

}

return "";

}

//把字符串转换成小写

public string IsReplace(string str)

{

return str.ToLower();

}

#region  拼装字符串

#region 拼装初始值

public string GetVariables()

{

string str=string.Empty;

for(int i=0;i

{

if(IsNull(this.SourceTable.Columns[i])=="")

{//数据类不型为空,数据类型不要加?

str+=string.Format("private {0} _{1};",

GetOracleDbType(this.SourceTable.Columns[i]),

IsReplace(this.SourceTable.Columns[i].Name));

}

else

{//为空时加问号

if(GetOracleDbType(this.SourceTable.Columns[i])=="string")

{//特殊情况数据类型是string类型不管为空,还是不能为空不能加?

str+=string.Format("private {0} _{1};",

GetOracleDbType(this.SourceTable.Columns[i]),

IsReplace(this.SourceTable.Columns[i].Name));

}

else

{//否则数据类型是非空类型后面带问号

str+=string.Format("private {0}? _{1};",

GetOracleDbType(this.SourceTable.Columns[i]),

IsReplace(this.SourceTable.Columns[i].Name));

}

}

if(i!=(this.SourceTable.Columns.Count-1))

{

str+="/r/n  ";

}

}

return str;

}

#endregion

#region 拼装方法

public string GetMethod()

{

string str=string.Empty;

string a="{";

string b="}";

for(int i=0;i

{

if(IsNull(this.SourceTable.Columns[i])=="")

{//数据类不型为空,数据类型不要加?

//拼装格式

str+="/// /r/n  ";

str+="/// /r/n  ";

str+="/// /r/n  ";

str+=string.Format("public {0} {1}",

GetOracleDbType(this.SourceTable.Columns[i]),

this.SourceTable.Columns[i].Name);

str+="/r/n  {/r/n   ";

str+=string.Format("set{1} _{0} = value;{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n   ";

str+=string.Format("get{1}return _{0};{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n  }";

}

else

{//为空时加问号

if(GetOracleDbType(this.SourceTable.Columns[i])=="string")

{//特殊情况数据类型是string类型不管为空,还是不能为空不能加?

//拼装格式

str+="/// /r/n  ";

str+="/// /r/n  ";

str+="/// /r/n  ";

str+=string.Format("public {0} {1}",

GetOracleDbType(this.SourceTable.Columns[i]),

this.SourceTable.Columns[i].Name);

str+="/r/n  {/r/n   ";

str+=string.Format("set{1} _{0} = value;{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n   ";

str+=string.Format("get{1}return _{0};{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n  }";

}

else

{//否则数据类型是非空类型后面带问号

//拼装格式

str+="/// /r/n  ";

str+="/// /r/n  ";

str+="/// /r/n  ";

str+=string.Format("public {0}? {1}",

GetOracleDbType(this.SourceTable.Columns[i]),

this.SourceTable.Columns[i].Name);

str+="/r/n  {/r/n   ";

str+=string.Format("set{1} _{0} = value;{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n   ";

str+=string.Format("get{1}return _{0};{2}",IsReplace(this.SourceTable.Columns[i].Name),a,b);

str+="/r/n  }";

}

}

if(i!=(this.SourceTable.Columns.Count-1))

{

str+="/r/n  ";

}

}

return str;

}

#endregion

#endregion

#region 判断数据类型

#region 根据列获取数据库的类型

///

///根据列获取数据库的类型

///

public string GetOracleDbType(ColumnSchema column)

{

switch (column.NativeType)

{

case "Char": case "char": case "CHAR":

case "varchar2": case "VarChar2": case "Varchar2": case "VARCHAR2":

case "nchar": case "Nchar": case "NCHAR":

case "nvarchar2": case "NVarChar2": case "NVARCHAR2":

case "Long": case "LONG": case "long":

case "Raw": case "RAW": case "raw":

case "Long raw": case "LONG RAW": case "long raw":

case "Rowid": case "rowid": case "ROWID":

case "Blob": case "blob": case "BLOB":

case "Clob": case "clob": case "CLOB":

case "nclob": case "NCLOB": case "Nclob":

case "Bfile": case "bfile": case "BFILE":

case "Urowid": case "urowid": case "UROWID":

return "string";

case "number": case "Number": case "NUMBER":

return "int";

case "double": case "Double": case "DOUBLE":

case "float": case "Float": case "FLOAT":

return "decimal";

case "DateTime": case "datetime": case "DATETIME":

case "Date": case "date": case "DATE":

return "DateTime";

default: return "__UNKNOWN__" + column.NativeType;

}

}

#endregion

#endregion

codesmith oracle 64,CodeSmith OracleModel写法相关推荐

  1. 应用程序连接Oracle rac的URL写法

    http://blog.csdn.net/hu_shengyang/article/details/7043271 Oracle RAC 集群示意图 RAC,全称real application cl ...

  2. PL/SQL Developer跑在Oracle 64位数据库上初始化错误

    安装完Oracle(64位).PL/SQL Developer后运行PL/SQL出现如下的错误: 网上查资料说,我的PL/SQL Developer与ORACLE不兼容,即PL/SQL不支持64位的O ...

  3. 64位php oracle,64位系统无法加载PHP的oracle扩展问题

    最开始以为64位系统,用64位的客户端,就是那个instantclient 可是安好以后加载不了,换成32位的就行了,估计是因为我的apache是32位的,它就只能加载32位扩展吧. 附带oracle ...

  4. oracle 64位客户端_LabVIEW读取Oracle数据库-开题

    最近做一个项目,工厂客户使用的Mes数据库是Oracle. 以前做医院摆药机系统时,和His对接用过Oracle数据库,主要用视图交互数据.然后,好久没有再使用过. 这次使用Oracle的时候,有几个 ...

  5. oracle的标准写法,oracle 表连接特有写法与标准写法

    oracle里表连接支持标准写法,但也有oracle特殊的写法,这两种写法在某些场景下会有差异,推荐使用标准写法,这里只是介绍表连接标准语法及了解oracle的特殊写法. 标准连接语法: select ...

  6. 64位电脑 装32位oracle,64位Windows可以安装32位的Oracle吗

    嘿服类 回答数:37  |  被采纳数:91 2017-04-21 07:22:43 64位的win7 完全可以安装32位的oracle. 安装方法如下: 首先,要解除oracle安装的windows ...

  7. plsql检测不到oracle,64位ORACLE客户端上plsql无法识别ORACLE_HOME解决方案

    1.问题 Plsql到目前为止只有32位的程序,而大多数的桌面系统基本都是使用64位的windows操作系统,在64位的windows上,大多数情况 下也是安装64位的ORACLE client程序, ...

  8. codesmith php模板,CodeSmith 基本语法-CodeTemplate 指令

    基本语法-CodeTemplate 指令 前面的几篇介绍了使用 CodeSmith 模板自动生成代码和编写代码模板的基本知识.也说过 CodeSmith最核心的部分是代码模板,从本篇开始介绍 Code ...

  9. oracle 64位客户端_oracle的管理工具toad如何设置命令补全

    概述 网上有很多关于设置toad命令行补全的文章,发现根本不好使,下面分享一下可行的设置方法 一.安装oracle客户端 1.到ORACLE 网站下载instantclient客户端 https:// ...

  10. How to setup linked servers for SQL Server and Oracle 64 bit client

    感谢作者:Tim Ford. 图文并茂. 原帖地址: http://www.mssqltips.com/sqlservertip/1433/how-to-setup-linked-servers-fo ...

最新文章

  1. js——全选框 checkbox
  2. Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和
  3. 博客园代码高亮显示教程
  4. jvm 崩溃日志设置_JVM致命错误日志(hs_err_pid.log)分析(转载)
  5. Flume 中文入门手冊
  6. 4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例
  7. 如何占用计算机内存,电脑内存占用太高怎么办 教你电脑内存不够用解决方法...
  8. 《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.4 示例:使用按钮集装饰单选框...
  9. Linux安装Bitbucket7.6.0教程-绝对干货满满
  10. 号称36个月不卡顿!网友:就是有点贵
  11. SDWebImage常用方法及原理
  12. 近期有哪些值得读的QA论文?
  13. 关于浮动-float
  14. Android NDK 剥离符号信息
  15. win10原版操作系统安装过程【超详细】
  16. 软件项目文档——WBS
  17. 欢乐时光病毒原码分析
  18. 【工作笔记】从零开始学ExtJs6(四)—— 常用api小记
  19. 联想服务器加装显卡无显示,标配11201355主板的启天M4330在 Win8系统加装独立显卡“无显无报警”...
  20. Python—字典的操作

热门文章

  1. CUDA10,Torch安装解决NOTFOUND CUDA_cublas_device_LIBRARY,Ubuntu16.04安装torch遇到的错误
  2. pcb天线和纯铜天线_PCB天线是什么
  3. 物联网NodeMCU刷写AT固件
  4. 近视矫正手术:准分子激光,飞秒,全飞秒
  5. GreatRiver研讨会 | ARINC 818的应用及发展
  6. loadrunner+fiddler代理录制
  7. java调用cmd且隐藏窗口,最后关闭窗口
  8. fixdown down,一个时代的终结。
  9. AB工业计算机编程软件,罗克韦尔/AB VersaView 5100 工业监视器
  10. 深度 | 面目全非自动化