EasyCode.Net代码生成器使用心得

  前段时间购买了一个EasyCode的正式使用许可  看他的界面设计的不错 就用他生成了一个项目(目地是想把以前我自己的一个程序的界面给更换下 人家有专业的UI设计我自己设计出来的肯定没有人家专业UI设计师弄出来的好看) ,项目生成完了 发现还不能直接更换界面他的是sql的数据库我以前的项目用的是sqlite的数据库因此需要对数据库连接进行下修改,批量替换了下SqlConnection和SqlParameter、SqlDataReader。 重新运行了下程序可以使用!

  接下来就剩下对业务的处理了(EasyCode最大的优点就是省去了繁琐的数据添加删除修改还有最烦人的界面设计!)  现在我就可以专心处理业务数据还有功能的实现了

  整个界面更换下来不到40分钟就好了(因为是个小项目所以东西也就少了很多)

 

  我个人觉得EasyCode是个很不错的工具既省去了繁琐的数据添加、修改、删除等操作而且界面也省的自己设计了  还有就是EasyCode生成的代码非常的规范而且根据自己填写的说明他会对生成的每个方法都添加相应的注释 修改代码的时候也不费劲(我个人写代码几乎是不写任何注释的  程序写完以后在修改的时候发现自己写的代码都不知道是干什么用的) 下边把我用EasyCode生成的代码跟大家分享下

通用数据访问
using System;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Collections.Generic;
using LML.ManageMoney.COL;
using LML.ManageMoney.SFL;

namespace LML.ManageMoney.DAL.Common
{
/// <summary>
/// 对象名称:经济管理通用数据访问父类(数据访问层)
/// 对象说明:提供“经济管理类(业务逻辑层)”对SqlServer,Oracle,OleDb等数据库进行访问的相关方法,以及部分通用方法供其子类进行调用。
/// 调用说明:本类为抽象类无法进行实例化,通常可以使用“经济管理类(业务逻辑层)”中的DataAccess属性来调用本类中所定义数据访问方法。
/// 作者姓名:李孟良
/// 编写日期:2012-3-16 20:59:49
/// </summary>
public abstract class AccountsDAL
{
#region EasyCode所生成的默认代码
//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 此区域的代码为EasyCode所自动生成,提供该类数据访问的基本方法。请不要直接修改该区域中的任何代码,
// 或在该区域中添加任何自定义代码,当该类发生变更时,您可以随时使用EasyCode重新生成覆盖其中的代码。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍


//警告:仅用于缓存“经济管理(AccountsDAL)数据访问类”的单件实例,永远不要直接访问该变量。
private static AccountsDAL accountsDAL;


/// <summary>
/// 获取“经济管理(AccountsDAL)数据访问类”的实例,该属性通过判断应用程序配置文件中数据库类型“DataBaseType”的值,
/// 创建一个用于对指定类型数据库进行访问的“经济管理(AccountsDAL)数据访问类”(SqlServer/Oracle/OleDb)”单件实例。
/// </summary>
public static AccountsDAL Instance
{
get
{
if (accountsDAL == null)
{
switch (System.Configuration.ConfigurationManager.AppSettings["DataBaseType"])
{
case "SqlServer":
accountsDAL = new SqlServer.AccountsDAL();
break;

default:
accountsDAL = new SqlServer.AccountsDAL();
break;
}
}
return accountsDAL;
}
}


/// <summary>
/// 从DataReader中读取数据,并为Accounts对象的所有属性赋值。该方法主要由该类的子类调用。
/// </summary>
/// <param name="sqlDataReader">IDataReader</param>
/// <param name="accounts">经济管理(Accounts)实例对象</param>
protected void ReadAccountsAllData(IDataReader dataReader, Accounts accounts)
{
// 编号ID
if (dataReader["ID"] != DBNull.Value)
accounts.ID = Convert.ToInt32(dataReader["ID"]);
// 时间
if (dataReader["DateTime"] != DBNull.Value)
accounts.DateTime = Convert.ToDateTime(dataReader["DateTime"]);
// 经手人
if (dataReader["HandledBy"] != DBNull.Value)
accounts.HandledBy = Convert.ToString(dataReader["HandledBy"]);
// 收入
if (dataReader["IncomeMoney"] != DBNull.Value)
accounts.IncomeMoney = Convert.ToString(dataReader["IncomeMoney"]);
// 支出
if (dataReader["ExpensesMoney"] != DBNull.Value)
accounts.ExpensesMoney = Convert.ToString(dataReader["ExpensesMoney"]);
// 分类ID
if (dataReader["CategoryID"] != DBNull.Value)
accounts.CategoryID = Convert.ToInt32(dataReader["CategoryID"]);
// 说明
if (dataReader["Description"] != DBNull.Value)
accounts.Description = Convert.ToString(dataReader["Description"]);
// 备注
if (dataReader["Remark"] != DBNull.Value)
accounts.Remark = Convert.ToString(dataReader["Remark"]);
// 拼音
if (dataReader["PY"] != DBNull.Value)
accounts.PY = Convert.ToString(dataReader["PY"]);
// 用户Id
if (dataReader["UserId"] != DBNull.Value)
accounts.UserId = dataReader["UserId"].ToString();
}


/// <summary>
/// 从DataReader中读取数据,并为Accounts对象需要进行显示的属性赋值。该方法主要由该类的子类调用。
/// </summary>
/// <param name="sqlDataReader">IDataReader</param>
/// <param name="accounts">经济管理(Accounts)实例对象</param>
protected void ReadAccountsPageData(IDataReader dataReader, Accounts accounts, int rowID)
{
// 编号ID
if (dataReader["ID"] != DBNull.Value)
accounts.ID = Convert.ToInt32(dataReader["ID"]);
// 时间
if (dataReader["DateTime"] != DBNull.Value)
accounts.DateTime = Convert.ToDateTime(dataReader["DateTime"]);
// 经手人
if (dataReader["HandledBy"] != DBNull.Value)
accounts.HandledBy = Convert.ToString(dataReader["HandledBy"]);
// 收入
if (dataReader["IncomeMoney"] != DBNull.Value)
accounts.IncomeMoney = float.Parse(dataReader["IncomeMoney"].ToString()).ToString("F2");
// 支出
if (dataReader["ExpensesMoney"] != DBNull.Value)
accounts.ExpensesMoney = float.Parse(dataReader["ExpensesMoney"].ToString()).ToString("F2");
// 说明
if (dataReader["Description"] != DBNull.Value)
accounts.Description = Convert.ToString(dataReader["Description"]);
// 备注
if (dataReader["Remark"] != DBNull.Value)
accounts.Remark = Convert.ToString(dataReader["Remark"]);
accounts.RowID = rowID;
}


//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 公共数据访问类抽象方法定义,在SqlServer/Oracle/OleDb子类中实现具体方法。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍


/// <summary>
/// 将经济管理(Accounts)数据,采用INSERT操作插入到数据库中,并返回受影响的行数。
/// </summary>
/// <param name="accounts">经济管理(Accounts)实例对象</param>
public abstract int Insert(Accounts accounts);


/// <summary>
/// 将经济管理(Accounts)数据,根据主键“编号ID(ID)”采用UPDATE操作更新到数据库中,并返回受影响的行数。
/// </summary>
/// <param name="accounts">经济管理(Accounts)实例对象</param>
public abstract int Update(Accounts accounts);


/// <summary>
/// 根据经济管理(Accounts)的主键“编号ID(ID)”采用DELETE操作从数据库中删除相关记录,并返回受影响的行数。
/// </summary>
/// <param name="iD">经济管理(Accounts)的主键“编号ID(ID)”</param>
public abstract int Delete(int iD);


/// <summary>
/// 根据经济管理(Accounts)的主键“编号ID(ID)”从数据库中获取经济管理(Accounts)的实例。
/// 成功从数据库中取得记录返回新经济管理(Accounts)的实例“,没有取到记录返回null值。
/// </summary>
/// <param name="iD">经济管理(Accounts)的主键“编号ID(ID)”</param>
public abstract Accounts GetDataByID(int iD);

/// <summary>
/// 按条件搜索
/// </summary>
/// <param name="StartTime">开始时间</param>
/// <param name="EndTime">结束时间</param>
/// <param name="jsr">经手人</param>
/// <param name="cateId">分类ID</param>
/// <returns></returns>
public abstract PageData GetAllAccounts(int pagesize, int curPage, string StartTime, string EndTime, string jsr, string cateId);

/// <summary>
/// 从数据库中读取并返回所有经济管理(Accounts)List列表。
/// </summary>
public abstract List<Accounts> GetAllList();


/// <summary>
/// 根据每页记录数及所要获取的页数,从数据库中读取并返回经过分页后的经济管理(Accounts)的列表及分页信息。
/// 该方法所获取的经济管理(Accounts)列表仅用于在数据控件中显示,该方法只为对象中需要显示的属性进行赋值。
/// </summary>
public abstract PageData GetPageList(int pageSize, int curPage);


#endregion EasyCode所生成的默认代码

//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 说明:以下区域的代码为设计开发人员所编写,主要为扩展该数据访问类的功能,而定义的变量、属性及相关数据访问方法。
// 注意:为了保证该项目的多数据库支持与扩展性,本类中的方法通常为抽象方法,具体实现由本类的子类通过方法重写完成。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍



/// <summary>
/// 统计支出总额,收入金额
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="categoryId">分类Id</param>
/// <returns>支出,收入</returns>
public abstract string CountMoney(DateTime startTime,DateTime endTime,int categoryId,string jsr);


}
}

EasyCode生成UI主界面

EasyCode

EasyCode的官方网址:http://www.budeasycode.com/

EasyCode工程师爱英思躺博客园地址:http://www.cnblogs.com/BudEasyCode/

转载于:https://www.cnblogs.com/lmlblog/archive/2012/03/19/EasyCode.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统管理员必须知道的PHP安全实践

系统管理员必须知道的PHP安全实践 PHP是一种开源服务器端脚本语言&#xff0c;应用很广泛。Apache web服务器提供了这种便利&#xff1a;通过HTTP或HTTPS协议&#xff0c; 访问文件和内容。配置不当的服务器端脚本语言会带来各种各样的问题。所以&#xff0c;使用PHP时要小心。…

ElasticSearch filter查询

学习查询之前&#xff0c;我还是老规矩&#xff0c;先准备数据 #Filter查询 #filter是不计算相关性的&#xff0c;同时可以cache.因此&#xff0c;filter速度要快于query. POST /lib5/items/_bulk {"index":{"_id": 1}} {"price": 40,"ite…

SQL Server 2005中的分区表(四):删除(合并)一个分区

在前面我们介绍过如何创建和使用一个分区表&#xff0c;并举了一个例子&#xff0c;将不 同年份的数据放在不同的物理分区表里。具体的分区方式为&#xff1a; 第1个小表&#xff1a;2010-1-1以前的数据&#xff08;不包含2010-1-1&#xff09;。 第2个小表&#xff1a;2010-1-…

畅通您的iOS开发之路

随着大家对苹果产品的趋之若鹜&#xff0c;iphone与ipad软件开发的前景也相当广阔。然而&#xff0c;目前精通iOS开发的专业人才却是凤毛麟角。因此&#xff0c;安博中 程在2012年推出重磅课程——“iPhone与iPad开发实战之路——精通iOS开发”高级培训班&#xff0c;为想从事i…

tool vmmap 配置符号文件 symbolic file

转载于:https://www.cnblogs.com/titer1/archive/2012/03/21/2410316.html

使用简单的5个步骤设置 Web服务器集群

通过在多个处理器之间分担工作负载并采用多种软件恢复技术&#xff0c;能够提供高度可用的环境并提高环境的总体 RAS&#xff08;可靠性、可用性和可服务性&#xff09;。可以得到的好处包括&#xff1a;更快地从意外中断中恢复运行&#xff0c;以及将意外中断对终端用户的影响…

浅谈HotSpot逃逸分析

JIT 即时编译&#xff08;Just-in-time Compilation&#xff0c;JIT&#xff09;是一种通过在运行时将字节码翻译为机器码&#xff0c;从而改善字节码编译语言性能的技术。在HotSpot实现中有多种选择&#xff1a;C1、C2和C1C2&#xff0c;分别对应client、server和分层编译。 …

pku 1611 The Suspects 并查集的应用

http://poj.org/problem?id1611 思路&#xff1a;统计出和0能够联系在一起的点&#xff0c;然后输出其个数 View Code #include <cstdio>#include <iostream>#define maxn 30004using namespace std;int f[maxn],num[maxn];//num记录与0有联系的个数int n,m;int …

ElasticSearch 聚合查询

价格总和&#xff1a; 1,使用aggs 2,自己起个名字price_of_sum 3,求和sum 4&#xff0c;filed要求和的字段 GET /lib5/items/_search {"aggs": {"price_of_sum": {"sum": {"field": "price"}}} }聚合查询结果&#x…

hdu Candy Sharing Game

http://acm.hdu.edu.cn/showproblem.php?pid1034 模拟题 View Code 1 #include<iostream> 2 using namespace std; 3 int a[100000]; 4 int b[100000];//a的一半 5 int n; 6 int main() 7 { 8 while(cin>>n && n) 9 {10 int i;11 …

对DataTable的一些解释

最经做导入导出Excel时&#xff0c;经常操作DataTable&#xff0c;DataSet&#xff0c;就按自己的需求对他们的一些常用的东西进行了一下总结。 一、DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例。 DataTable(string …

Doc2Vec训练相似文章识别模型

一、需求描述 由于在平台上发布的文章是来源于不同渠道和作者的&#xff0c;发布的文章也存在一定程度上的抄袭或者太相似。为了避免对用户体验造成影响&#xff0c;避免不必要的文章费用支出&#xff0c;需要识别出哪些文章是相似的。数据源是若干文章&#xff08;中文&#x…

实时重复文章识别——SimHash

一、背景介绍 在前边的文章中&#xff0c;我们采用的是用google的Doc2Vec模型来识别重复文章的&#xff0c;从线上运行的效果来看&#xff0c;它的准确率是比较高的。当然&#xff0c;这是建立在把所有的文章都当做训练数据来训练Doc2Vec模型的基础上的&#xff0c;它推断出一篇…

深入理解simhash原理

一、LSH 介绍 LSH(Locality sensitive hashing)是局部敏感性hashing&#xff0c;它与传统的hash是不同的。传统hash的目的是希望得到O&#xff08;1&#xff09;的查找性能&#xff0c;将原始数据映射到相应的桶内。 LSH的基本思想是将空间中原始数据相邻的2个数据点通过映…

IntelliJ IDEA tomcat配置

1&#xff0c;首先安装好 IntelliJ IDEA 开发工具 2&#xff0c;右上角这里有个 Edit Configurations 3,添加模板 选择本地安装的tomcat 和 选择jdk 4&#xff0c;添加tomcat 这里tomcat就安装好了

Think in Java之斐波那契数列

斐波纳契数列&#xff08;Fibonacci Sequence&#xff09;&#xff0c;又称黄金分割数列。 指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、……这个数列从第三项开始&#xff0c;每一项都等于前两项之和。 在数学上&#xff0c;斐波纳契数列以如下被以递归的方法定…

《论道HTML5》内容技术分享活动

HTML5小组的第12次活动&#xff0c;本期沙龙围绕5月出版的《论道HTML5》重点章节内容展开&#xff0c;由我和另外一位作者秀野堂主现场分享。欢迎大家参加&#xff0c;下面是活动的详细信息。活动介绍&#xff1a;时间&#xff1a;2012年04月21日 13:30-18:00地址&#xff1a;东…

基于SpringBoot实现一个可扩展的事件总线

基于SpringBoot实现一个可扩展的事件总线 前言 在日常开发中&#xff0c;我们经常会用到事件总线&#xff0c;SpringBoot通过事件多播器的形式为我们提供了一个事件总线&#xff0c;但是在开发中我们经常会用到其他的实现&#xff0c;比如Guava、Disruptor的。我们将基于Spri…

大数据技术之 Kafka (第 1 章 Kafka 概述)

第 1 章 Kafka 概述 1.1 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;主要应用于大数据实时处理领域。 1.2 消息队列 1.2.1 传统消息队列的应用场景 MQ传统应用场景之异步处理 使用消息队列的好处 1&a…