




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注意事项:更新的时候需要设置Attach(),如果不设置主键会把所有记录都更新一遍Hxj.Data, Hxj.Data实体生成工具, Hxj,Data Demo, Hxj.Web, Hxj.Web.UI 下载1数据库组件 Hxj.Data (一)(介绍篇)4数据库组件 Hxj.Data (二)(实体生成工具)13数据库组件 Hxj.Data (三)(查询操作篇)15数据库组件 Hxj.Data (四)(添加操作篇)17数据库组件 Hxj.Data (六)(删除操作篇)18数据库组件 Hxj.Data(七) (sql篇)19数据库组件 Hxj.Data(八)(存储过程篇)20数据库组件 Hxj.Data(九)(DbSession的其他介绍)21数据库组件 Hxj.Data (十)(输出组件执行的sql)22数据库组件 Hxj.Data (十一) (where条件)23数据库组件 Hxj.Data (十二) (模糊查询、简单的in,not in查询)25数据库组件 Hxj.Data (十三) (子查询)27数据库组件 Hxj.Data (十四) (联合查询)28数据库组件 Hxj.Data (十五) (查询的排序、分组)30数据库组件 Hxj.Data (十六) (查询的字段)33数据库组件 Hxj.Data (十七) (事务)34数据库组件 Hxj.Data (十八) (批处理)36数据库组件 Hxj.Data (十九) (事务二)38数据库组件 Hxj.Data (二十) (分页)40数据库组件 Hxj.Data (二十一) (ToScalar)42数据库组件 Hxj.Data (二十二) (缓存)43数据库组件 Hxj.Data (二十三) (自定义缓存)46数据库组件 Hxj.Data (二十四)(Sqlite数据库)48数据库组件 Hxj.Data (二十五)(数据库连接配置 - connectionStrings节点)48数据库组件 Hxj.Data (二十六)(Oracle 配置)49数据库组件 Hxj.Data (二十七)(字段组合更新)50数据库组件 Hxj.Data (二十八)(事务中的查询,查询字段字中的子查询,WhereClip的隐式转换)51数据库组件 Hxj.Data (二十九)(DbSession的推荐写法)54数据库组件 Hxj.Data (三十)(Asp.Net 页面自动赋值与取值)55数据库组件 Hxj.Data (三十一)(MySQL篇)58数据库组件 Hxj.Data(三十二)WhereClipBuilder59数据库组件 Hxj.Data 提问反馈60Hxj.Data, Hxj.Data实体生成工具, Hxj,Data Demo, Hxj.Web, Hxj.Web.UI 下载Hxj.DataHxj.Data 数据库组件Hxj.Data(V) Hxj.Data 实体生成工具 Hxj.Data实体生成工具(V)Hxj.Data(V1.6)文档 (Ndoc生成)Hxj.Data(V1.6).CHM.rarMySQL.Data (MySql)MySql.Data.rarSystem.Data.SQLite (1.0.66版本,包括x64版本)System.Data.SQLite.rarHxj.Data Demo:(这里的 Hxj.Data.dll 版本旧,请随时更新。)Hxj.Data例子(20100130)Hxj.Web Hxj.Web Web开发辅助类库Hxj.Web(V1.1.3) Hxj.Web.UI Web控件Hxj.Web.UI(V)Hxj.Data(V).rar更新日志:(多谢同事Anson提醒)Hxj.DataHxj.Data(V) 1、WhereClip.Exists方法,用来生成exists (select * from table )这种条件。 2、修正oracle子查询中表别名不能使用as关键字。Hxj.Data(V) 1、增加DbTrans类方法: FromSql(string sql) /事务内执行sql语句 FromPro(string proName) /事务内执行存储过程Hxj.Data(V1.7.3) 1、增加FromSection的Having方法,在增加处理groupby的having条件,原先的where方法则where条件。 (由于之前版本的having条件是where,所以会存在功能差异,升级时请注意。)Hxj.Data(V) 1、修正oracle批处理。Hxj.Data(V1.7.2) 1、增加WhereClipBuilder,用来快速构造WhereClip。 2、修正oracle的查询。Hxj.Data (V) 1、增加FromSection.ToFirstDefault()方法,当查询不到数据则默认构造一个实体。 2、增加FromSection.GroupBy(params Field field)方法,设置分组。 3、其他修正。Hxj.Data (V1.7.1) 1、优化oracle查询。 2、Field.SelectIn处理int类型就不参数化,直接生成例如: Field in (1,2,3) 3、修正oracle支持。Hxj.Data (V1.7) 1、增加支持MySql。Hxj.Data (V1.6.7) 1、增加Hxj.Data.Common.EntityUtils.SetDocumentValue方法,用于Web页面赋值。 2、修正其他功能。Hxj.Data (V1.6.6) 1、修正由于string to whereclip的隐式转换,导致Delete(params object pkValues)在传入字符串类型无法调用。 2、增加Insert(params TEntity entities) Update(params TEntity entities)方法Hxj.Data (V1.6.5) 1、修正Hxj.Data.Common.EntityUtils.UpdateModel Hxj.Data.Common.EntityUtils.TryUpdateModel 方法无法赋值的问题(在实体属性首字母大写) 2、修正更新的时候无法排除自增长字段。 3、增加Hxj.Data.Common.EntityUtils.SetValue(TEntity toEntity, TEntity fromEntity)方法实体之间赋值。Hxj.Data (V1.6.4) 1、优化分页,当分页到达过半时,分页则是先倒叙取count-startindex+1,再正序取pagesize数据。 2、增加FromSection.AddSelect(FromSection),可对查询列中加子查询。 3、增加string to WhereClip的隐式转换。Hxj.Data (V1.6.3) 1、增加DbTrans.FromSection 查询。 2、修正实体类属性首字母大写后,生成实体主键条件无法生成。 3、修正其他BUG。Hxj.Data 实体生成工具(V) 1、修正oracle生成。 Hxj.Data 实体生成工具(V1.7.3) 1、修正批量导出进度条的错误。 2、增加dbtype.xml配置文件,用来配置数据库字段类型对应C#中的类型。 3、修正其他。Hxj.Data 实体生成工具(V1.7.2) 1、增加批量导出路径记忆。Hxj.Data 实体生成工具(V1.7.1) 1、修正oracle生成。Hxj.Data 实体生成工具(V1.7) 1、支持MySql。Hxj.Data 实体生成工具(V1.6) 1、修正Sql server2005下,视图生成错误问题。 2、修正功能。Hxj.Data 实体生成工具(V1.5) 1、增加首字母大写功能。 2、修正BUG。Hxj.Web Hxj.Web.UI(V) 1、PopupControl控件增加脚本方法: SetTitle(修改标题), 修改标题。 SetUrl(/huxj), 修改显示页面的链接。Hxj.Web.UI(V1.6.1) 1、修正功能。Hxj.Web.UI(V1.6) 1、增加TabControl选项卡控件。Hxj.Web.UI(V1.5.4) 1、PopupControl增加Show()方法,可以后台调用显示层来注册脚本。 2、修正UploadControl的脚本错误。Hxj.Web(V1.1.3) 1、修正UploadFile上传类的BUG。数据库组件 Hxj.Data (一)(介绍篇)Hxj.Data经过几个月的开发,终于发布了一个版本,并同时发布实体生成工具。在开发过程参考了多个ORM框架,特别是NBear,MySoft等。吸取了他们的一些精华,加入自己的新思想。目前支持Sql20002005,MsAccess,Oracle,SQLite,MySQL,如有需要可再扩展。数据库实体生成的代码Northwind数据库中Products表:/- / / 此代码由工具生成。 / 运行时版本:2.0.50727.4200 / / 对此文件的更改可能会导致不正确的行为,并且如果 / 重新生成代码,这些更改将会丢失。 / /- using System; using System.Data; using System.Data.Common; using Hxj.Data; using Hxj.Data.Common; namespace Hxj.Model / / 实体类Products 。(属性说明自动提取数据库字段的描述信息) / Serializable public class Products : Entity public Products():base(Products) #region Model private int _ProductID; private string _ProductName; private int? _SupplierID; private int? _CategoryID; private string _QuantityPerUnit; private decimal? _UnitPrice; private int? _UnitsInStock; private int? _UnitsOnOrder; private int? _ReorderLevel; private bool _Discontinued; / / / public int ProductID get return _ProductID; set this.OnPropertyValueChange(_.ProductID,_ProductID,value); this._ProductID=value; / / / public string ProductName get return _ProductName; set this.OnPropertyValueChange(_.ProductName,_ProductName,value); this._ProductName=value; / / / public int? SupplierID get return _SupplierID; set this.OnPropertyValueChange(_.SupplierID,_SupplierID,value); this._SupplierID=value; / / / public int? CategoryID get return _CategoryID; set this.OnPropertyValueChange(_.CategoryID,_CategoryID,value); this._CategoryID=value; / / / public string QuantityPerUnit get return _QuantityPerUnit; set this.OnPropertyValueChange(_.QuantityPerUnit,_QuantityPerUnit,value); this._QuantityPerUnit=value; / / / public decimal? UnitPrice get return _UnitPrice; set this.OnPropertyValueChange(_.UnitPrice,_UnitPrice,value); this._UnitPrice=value; / / / public int? UnitsInStock get return _UnitsInStock; set this.OnPropertyValueChange(_.UnitsInStock,_UnitsInStock,value); this._UnitsInStock=value; / / / public int? UnitsOnOrder get return _UnitsOnOrder; set this.OnPropertyValueChange(_.UnitsOnOrder,_UnitsOnOrder,value); this._UnitsOnOrder=value; / / / public int? ReorderLevel get return _ReorderLevel; set this.OnPropertyValueChange(_.ReorderLevel,_ReorderLevel,value); this._ReorderLevel=value; / / / public bool Discontinued get return _Discontinued; set this.OnPropertyValueChange(_.Discontinued,_Discontinued,value); this._Discontinued=value; #endregion #region Method / / 获取实体中的标识列 / public override Field GetIdentityField() return _.ProductID; / / 获取实体中的主键列 / public override Field GetPrimaryKeyFields() return new Field _.ProductID; / / 获取列信息 / public override Field GetFields() return new Field _.ProductID, _.ProductName, _.SupplierID, _.CategoryID, _.QuantityPerUnit, _.UnitPrice, _.UnitsInStock, _.UnitsOnOrder, _.ReorderLevel, _.Discontinued; / / 获取值信息 / public override object GetValues() return new object this._ProductID, this._ProductName, this._SupplierID, this._CategoryID, this._QuantityPerUnit, this._UnitPrice, this._UnitsInStock, this._UnitsOnOrder, this._ReorderLevel, this._Discontinued; / / 给当前实体赋值 / public override void SetPropertyValues(IDataReader reader) this._ProductID = DataUtils.ConvertValue(readerProductID); this._ProductName = DataUtils.ConvertValue(readerProductName); this._SupplierID = DataUtils.ConvertValue(readerSupplierID); this._CategoryID = DataUtils.ConvertValue(readerCategoryID); this._QuantityPerUnit = DataUtils.ConvertValue(readerQuantityPerUnit); this._UnitPrice = DataUtils.ConvertValue(readerUnitPrice); this._UnitsInStock = DataUtils.ConvertValue(readerUnitsInStock); this._UnitsOnOrder = DataUtils.ConvertValue(readerUnitsOnOrder); this._ReorderLevel = DataUtils.ConvertValue(readerReorderLevel); this._Discontinued = DataUtils.ConvertValue(readerDiscontinued); / / 给当前实体赋值 / public override void SetPropertyValues(DataRow row) this._ProductID = DataUtils.ConvertValue(rowProductID); this._ProductName = DataUtils.ConvertValue(rowProductName); this._SupplierID = DataUtils.ConvertValue(rowSupplierID); this._CategoryID = DataUtils.ConvertValue(rowCategoryID); this._QuantityPerUnit = DataUtils.ConvertValue(rowQuantityPerUnit); this._UnitPrice = DataUtils.ConvertValue(rowUnitPrice); this._UnitsInStock = DataUtils.ConvertValue(rowUnitsInStock); this._UnitsOnOrder = DataUtils.ConvertValue(rowUnitsOnOrder); this._ReorderLevel = DataUtils.ConvertValue(rowReorderLevel); this._Discontinued = DataUtils.ConvertValue(rowDiscontinued); #endregion #region _Field / / 字段信息 / public class _ public readonly static Field All = new Field(*,Products); public readonly static Field ProductID = new Field(ProductID,Products,ProductID); public readonly static Field ProductName = new Field(ProductName,Products,ProductName); public readonly static Field SupplierID = new Field(SupplierID,Products,SupplierID); public readonly static Field CategoryID = new Field(CategoryID,Products,CategoryID); public readonly static Field QuantityPerUnit = new Field(QuantityPerUnit,Products,QuantityPerUnit); public readonly static Field UnitPrice = new Field(UnitPrice,Products,UnitPrice); public readonly static Field UnitsInStock = new Field(UnitsInStock,Products,UnitsInStock); public readonly static Field UnitsOnOrder = new Field(UnitsOnOrder,Products,UnitsOnOrder); public readonly static Field ReorderLevel = new Field(ReorderLevel,Products,ReorderLevel); public readonly static Field Discontinued = new Field(Discontinued,Products,Discontinued); #endregion 数据组件默认入口为:Hxj.Data.DbSession.Default 会自动读取config文件中connectionStrings节点的最后一个连接配置。当然可根据不同的数据连接实例化新的DbSession。查询示例:1、查询Products表所有数据的信息,返回实体列表。List list = DbSession.Default.From().ToList();2、查询其他的简单示例。DbSession.Default.From() /.Select(Products._.ProductID) /.GroupBy(Products._.CategoryID.GroupBy & Products._.ProductName.GroupBy) / .InnerJoin(Suppliers._.SupplierID = Products._.SupplierID) / .Select(Products._.CategoryID, Products._.ProductName, Products._.ProductID)/, Suppliers._.CompanyName, Suppliers._.ContactName /.OrderBy(Products._.ProductID.Asc) /.Where(Products._.ProductName.Contain(null) & Products._.UnitPrice 1) | Products._.CategoryID = 2) /.UnionAll(DbSession.Default.From().Select(Products._.ProductID) .Page(10, 1) /.ToList(); .ToDataSet();添加示例:例子是web下的。/新建一个实体 Products p = new Products(); /开启修改 (开启修改后的添加操作将只insert赋值过的字段) p.Attach(); /获取页面中输入的值 EntityUtils.UpdateModel(p, Request.Form, txt_); /返回值 如果有自增长字段,则返回自增长字段的值 int returnValue = DbSession.Default.Insert(p);修改示例:修改Products表第一条数据的ProductName的值。/获取Products表第一行Products p = DbSession.Default.From().ToFirst();/开启修改 (修改操作之前 必须执行此方法)p.Attach();p.ProductName = txtValue.Text.Trim(); /更新 /返回0表示更新失败 组件有事务会自动回滚 /返回1表示更新成功 /更新成功返回值就是受影响的条数int returnvalue = DbSession.Default.Update(p);删除示例:参数为主键的值,也可传入实体。/删除 条件 ProductID=2 /返回0表示删除失败 组件有事务会自动回滚 /返回1表示删除成功 /删除成功返回值就是受影响的条数int returnvalue = DbSession.Default.Delete(2);组件还支持事务,批处理等功能。数据库组件 Hxj.Data (二)(实体生成工具)实体生成工具的界面如下图:目前工具支持MsAccess,Sql Server, Sqlite, Oracle数据库的实体生成。下面单个实体生成演示,Northwind数据库的Customers表也可以批量生成数据库所有表的实体。如下图实体的生成很简单。下面章节将讲述Hxj.Data的具体使用。数据库组件 Hxj.Data (三)(查询操作篇)Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如:From,Insert,Update,Delete等常用方法。DbSession.Default是一个默认的DbSession。在默认情况下会自动读取web.config/app.config配置文件中connectionStrings节点的最后一个配置。 可以通过条用DbSession的SetDefault方法来修改这个Default。不同的数据库可构造不同的DbSession,如:DbSession dbSessionDefault = new DbSession(NorthwindConnectionString);DbSession dbSessionDefault2 = new DbSession(DatabaseType.SqlServer, Data Source=riccihu;Initial Catalog=Northwind;Integrated Security=True);(NorthwindConnectionString”是connectionStrings节点的name)确定好需要使用的DbSession后,就可以配合实体工具生成的实体类开始数据库操作了。下面例子使用DbSession.Default,以及Northwind数据库。From()的方法使用,这个是查询操作。查询Products表中第一条数据并返回实体,代码如下。Products product = DbSession.Default.From().ToFirst();接下来我们来加个条件。List products= DbSession.Default.From().Where(Products._.CategoryID = 2).ToList();当然也可以ToDataTable()返回DataTable,ToDataSet()返回DataSet,ToDataReader()返回IDataReader。其实DbSession.Default.From()就是构造一个FromSection,也就是查询的条件,查询的字段,排序,分页等都是FromSection提供的。示例:DbSession.Default.From()/.Select(Products._.ProductID) /查询返回ProductID字段/.GroupBy(Products._.CategoryID.GroupBy & Products._.ProductName.GroupBy)/按照CategoryID,ProductName分组/.InnerJoin(Suppliers._.SupplierID = Products._.SupplierID)/关联Suppliers表 -CrossJoin FullJoin LeftJoin RightJoin 同理/.OrderBy(Products._.ProductID.Asc)/按照ProductID正序排序/.Where(Products._.ProductName.Contain(apple) & Products._.UnitPrice 1) | Products._.CategoryID = 2)/设置条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胸腔积液诊疗要点解析
- 抢救药品的剂量及用途
- 男孩女孩认知活动
- 宿舍卫生管理标准
- 农行转型成效汇报
- 项目履约评价汇报
- 脑出血护考讲解
- 文档转换指南
- 医院内科工作总结
- 尿布皮炎护理技术
- engel恩格尔注塑机机操纵使用说明
- 花卉学 二年生花卉
- 附件1:中国联通动环监控系统B接口技术规范(V3.0)
- 箱变设备台账
- GB/T 1185-2006光学零件表面疵病
- 微课(比喻句)讲课教案课件
- 银行间本币市场业务简介
- 2023年厦门东海职业技术学院辅导员招聘考试笔试题库及答案解析
- 辽阳市出租汽车驾驶员从业资格区域科目考试题库(含答案)
- (完整版)剑桥通用五级PET考试练习题
- DB32- 4385-2022《锅炉大气污染物排放标准》
评论
0/150
提交评论