EasyCode.Net代码生成器使用心得
前段時(shí)間購買了一個(gè)EasyCode的正式使用許可 ?看他的界面設(shè)計(jì)的不錯(cuò) 就用他生成了一個(gè)項(xiàng)目(目地是想把以前我自己的一個(gè)程序的界面給更換下 人家有專業(yè)的UI設(shè)計(jì)我自己設(shè)計(jì)出來的肯定沒有人家專業(yè)UI設(shè)計(jì)師弄出來的好看) ,項(xiàng)目生成完了 發(fā)現(xiàn)還不能直接更換界面他的是sql的數(shù)據(jù)庫我以前的項(xiàng)目用的是sqlite的數(shù)據(jù)庫因此需要對(duì)數(shù)據(jù)庫連接進(jìn)行下修改,批量替換了下SqlConnection和SqlParameter、SqlDataReader。 重新運(yùn)行了下程序可以使用!
接下來就剩下對(duì)業(yè)務(wù)的處理了(EasyCode最大的優(yōu)點(diǎn)就是省去了繁瑣的數(shù)據(jù)添加刪除修改還有最煩人的界面設(shè)計(jì)!) ?現(xiàn)在我就可以專心處理業(yè)務(wù)數(shù)據(jù)還有功能的實(shí)現(xiàn)了
整個(gè)界面更換下來不到40分鐘就好了(因?yàn)槭莻€(gè)小項(xiàng)目所以東西也就少了很多)
?
我個(gè)人覺得EasyCode是個(gè)很不錯(cuò)的工具既省去了繁瑣的數(shù)據(jù)添加、修改、刪除等操作而且界面也省的自己設(shè)計(jì)了 ?還有就是EasyCode生成的代碼非常的規(guī)范而且根據(jù)自己填寫的說明他會(huì)對(duì)生成的每個(gè)方法都添加相應(yīng)的注釋 修改代碼的時(shí)候也不費(fèi)勁(我個(gè)人寫代碼幾乎是不寫任何注釋的 ?程序?qū)懲暌院笤谛薷牡臅r(shí)候發(fā)現(xiàn)自己寫的代碼都不知道是干什么用的) 下邊把我用EasyCode生成的代碼跟大家分享下
通用數(shù)據(jù)訪問 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>
/// 對(duì)象名稱:經(jīng)濟(jì)管理通用數(shù)據(jù)訪問父類(數(shù)據(jù)訪問層)
/// 對(duì)象說明:提供“經(jīng)濟(jì)管理類(業(yè)務(wù)邏輯層)”對(duì)SqlServer,Oracle,OleDb等數(shù)據(jù)庫進(jìn)行訪問的相關(guān)方法,以及部分通用方法供其子類進(jìn)行調(diào)用。
/// 調(diào)用說明:本類為抽象類無法進(jìn)行實(shí)例化,通??梢允褂谩敖?jīng)濟(jì)管理類(業(yè)務(wù)邏輯層)”中的DataAccess屬性來調(diào)用本類中所定義數(shù)據(jù)訪問方法。
/// 作者姓名:李孟良
/// 編寫日期:2012-3-16 20:59:49
/// </summary>
public abstract class AccountsDAL
{
#region EasyCode所生成的默認(rèn)代碼
//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 此區(qū)域的代碼為EasyCode所自動(dòng)生成,提供該類數(shù)據(jù)訪問的基本方法。請(qǐng)不要直接修改該區(qū)域中的任何代碼,
// 或在該區(qū)域中添加任何自定義代碼,當(dāng)該類發(fā)生變更時(shí),您可以隨時(shí)使用EasyCode重新生成覆蓋其中的代碼。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
//警告:僅用于緩存“經(jīng)濟(jì)管理(AccountsDAL)數(shù)據(jù)訪問類”的單件實(shí)例,永遠(yuǎn)不要直接訪問該變量。
private static AccountsDAL accountsDAL;
/// <summary>
/// 獲取“經(jīng)濟(jì)管理(AccountsDAL)數(shù)據(jù)訪問類”的實(shí)例,該屬性通過判斷應(yīng)用程序配置文件中數(shù)據(jù)庫類型“DataBaseType”的值,
/// 創(chuàng)建一個(gè)用于對(duì)指定類型數(shù)據(jù)庫進(jìn)行訪問的“經(jīng)濟(jì)管理(AccountsDAL)數(shù)據(jù)訪問類”(SqlServer/Oracle/OleDb)”單件實(shí)例。
/// </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中讀取數(shù)據(jù),并為Accounts對(duì)象的所有屬性賦值。該方法主要由該類的子類調(diào)用。
/// </summary>
/// <param name="sqlDataReader">IDataReader</param>
/// <param name="accounts">經(jīng)濟(jì)管理(Accounts)實(shí)例對(duì)象</param>
protected void ReadAccountsAllData(IDataReader dataReader, Accounts accounts)
{
// 編號(hào)ID
if (dataReader["ID"] != DBNull.Value)
accounts.ID = Convert.ToInt32(dataReader["ID"]);
// 時(shí)間
if (dataReader["DateTime"] != DBNull.Value)
accounts.DateTime = Convert.ToDateTime(dataReader["DateTime"]);
// 經(jīng)手人
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中讀取數(shù)據(jù),并為Accounts對(duì)象需要進(jìn)行顯示的屬性賦值。該方法主要由該類的子類調(diào)用。
/// </summary>
/// <param name="sqlDataReader">IDataReader</param>
/// <param name="accounts">經(jīng)濟(jì)管理(Accounts)實(shí)例對(duì)象</param>
protected void ReadAccountsPageData(IDataReader dataReader, Accounts accounts, int rowID)
{
// 編號(hào)ID
if (dataReader["ID"] != DBNull.Value)
accounts.ID = Convert.ToInt32(dataReader["ID"]);
// 時(shí)間
if (dataReader["DateTime"] != DBNull.Value)
accounts.DateTime = Convert.ToDateTime(dataReader["DateTime"]);
// 經(jīng)手人
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;
}
//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 公共數(shù)據(jù)訪問類抽象方法定義,在SqlServer/Oracle/OleDb子類中實(shí)現(xiàn)具體方法。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
/// <summary>
/// 將經(jīng)濟(jì)管理(Accounts)數(shù)據(jù),采用INSERT操作插入到數(shù)據(jù)庫中,并返回受影響的行數(shù)。
/// </summary>
/// <param name="accounts">經(jīng)濟(jì)管理(Accounts)實(shí)例對(duì)象</param>
public abstract int Insert(Accounts accounts);
/// <summary>
/// 將經(jīng)濟(jì)管理(Accounts)數(shù)據(jù),根據(jù)主鍵“編號(hào)ID(ID)”采用UPDATE操作更新到數(shù)據(jù)庫中,并返回受影響的行數(shù)。
/// </summary>
/// <param name="accounts">經(jīng)濟(jì)管理(Accounts)實(shí)例對(duì)象</param>
public abstract int Update(Accounts accounts);
/// <summary>
/// 根據(jù)經(jīng)濟(jì)管理(Accounts)的主鍵“編號(hào)ID(ID)”采用DELETE操作從數(shù)據(jù)庫中刪除相關(guān)記錄,并返回受影響的行數(shù)。
/// </summary>
/// <param name="iD">經(jīng)濟(jì)管理(Accounts)的主鍵“編號(hào)ID(ID)”</param>
public abstract int Delete(int iD);
/// <summary>
/// 根據(jù)經(jīng)濟(jì)管理(Accounts)的主鍵“編號(hào)ID(ID)”從數(shù)據(jù)庫中獲取經(jīng)濟(jì)管理(Accounts)的實(shí)例。
/// 成功從數(shù)據(jù)庫中取得記錄返回新經(jīng)濟(jì)管理(Accounts)的實(shí)例“,沒有取到記錄返回null值。
/// </summary>
/// <param name="iD">經(jīng)濟(jì)管理(Accounts)的主鍵“編號(hào)ID(ID)”</param>
public abstract Accounts GetDataByID(int iD);
/// <summary>
/// 按條件搜索
/// </summary>
/// <param name="StartTime">開始時(shí)間</param>
/// <param name="EndTime">結(jié)束時(shí)間</param>
/// <param name="jsr">經(jīng)手人</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>
/// 從數(shù)據(jù)庫中讀取并返回所有經(jīng)濟(jì)管理(Accounts)List列表。
/// </summary>
public abstract List<Accounts> GetAllList();
/// <summary>
/// 根據(jù)每頁記錄數(shù)及所要獲取的頁數(shù),從數(shù)據(jù)庫中讀取并返回經(jīng)過分頁后的經(jīng)濟(jì)管理(Accounts)的列表及分頁信息。
/// 該方法所獲取的經(jīng)濟(jì)管理(Accounts)列表僅用于在數(shù)據(jù)控件中顯示,該方法只為對(duì)象中需要顯示的屬性進(jìn)行賦值。
/// </summary>
public abstract PageData GetPageList(int pageSize, int curPage);
#endregion EasyCode所生成的默認(rèn)代碼
//﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
// 說明:以下區(qū)域的代碼為設(shè)計(jì)開發(fā)人員所編寫,主要為擴(kuò)展該數(shù)據(jù)訪問類的功能,而定義的變量、屬性及相關(guān)數(shù)據(jù)訪問方法。
// 注意:為了保證該項(xiàng)目的多數(shù)據(jù)庫支持與擴(kuò)展性,本類中的方法通常為抽象方法,具體實(shí)現(xiàn)由本類的子類通過方法重寫完成。
//﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
/// <summary>
/// 統(tǒng)計(jì)支出總額,收入金額
/// </summary>
/// <param name="startTime">開始時(shí)間</param>
/// <param name="endTime">結(jié)束時(shí)間</param>
/// <param name="categoryId">分類Id</param>
/// <returns>支出,收入</returns>
public abstract string CountMoney(DateTime startTime,DateTime endTime,int categoryId,string jsr);
}
}
EasyCode的官方網(wǎng)址:http://www.budeasycode.com/
EasyCode工程師愛英思躺博客園地址:http://www.cnblogs.com/BudEasyCode/
轉(zhuǎn)載于:https://www.cnblogs.com/lmlblog/archive/2012/03/19/EasyCode.html
總結(jié)
以上是生活随笔為你收集整理的EasyCode.Net代码生成器使用心得的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 大数据量插入优化
- 下一篇: 整合个人人际资源