ORM框架-EntitysCodeGenerate自定义分页查询及快捷执行SQL(CreateSQL)示例

本文详细介绍了数据库分页查询的实现方法及Oracle、SqlServer等常见数据库的使用技巧,并展示了SQL快捷用法,如创建SQL并执行数据集查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、自定义分页查询(Skip/Take)

如下代码所示:

DbCore dbCore;

 

//Oracle 分页

dbCore = new DbCore(DatabaseType.Oracle, myOracle.BaseEntity.GetConnectionString());

DataSet dstOracle = dbCore.Select().Add(myOracle.DEPTColumn.DEPTNO)

                    .Add(myOracle.DEPTColumn.DNAME).Add(myOracle.DEPTColumn.LOC)

                    .Add(myOracle.EMPColumn.EMPNO).SelectColumn(myOracle.EMPColumn.ENAME)

                .From(myOracle.DEPTColumn.TableName).FromTable(myOracle.EMPColumn.TableName)

                .Where().ConditionColumnAndEqual(myOracle.DEPTColumn.DEPTNO, myOracle.EMPColumn.DEPTNO)

                .ConditionAndEqual(myOracle.DEPTColumn.DEPTNO,20)

                .OrderBy().Asc(myOracle.EMPColumn.DEPTNO).Skip(2).Take(3).ExecuteDataSet();

int countOracle = dstOracle.Tables[0].Rows.Count;

 

//未设置Oracle排序字段,默认数字1,但可能不是想要的顺序
dstOracle = dbCore.Select().Add(myOracle.DEPT.s_DEPTNO)

                    .Add(myOracle.DEPT.s_DNAME).Add(myOracle.DEPT.s_LOC)

                    .Add(myOracle.EMP.s_EMPNO).SelectColumn(myOracle.EMP.s_ENAME)

                .From(myOracle.DEPT.s_TableName).FromTable(myOracle.EMP.s_TableName)

                .Where().ConditionColumnAndEqual(myOracle.DEPT.s_DEPTNO, myOracle.EMP.s_DEPTNO)

                .ConditionAndGreatEqual(myOracle.DEPT.s_DEPTNO, 20)

                .OrderBy().Skip(2).Take(3).ExecuteDataSet();

countOracle = dstOracle.Tables[0].Rows.Count;

 

//SqlServer 分页,必须设置排序字段

dbCore = new DbCore(DatabaseType.SqlServer, mySqlServer2008.BaseEntity.GetConnectionString());

DataSet dstSqlServer = dbCore.Select().Add(mySqlServer2008.DEPT.s_DEPTNO)

                    .Add(mySqlServer2008.DEPT.s_DNAME).Add(mySqlServer2008.DEPT.s_LOC)

                    .Add(mySqlServer2008.EMP.s_EMPNO).SelectColumn(mySqlServer2008.EMP.s_ENAME)

                .From(mySqlServer2008.DEPT.s_TableName).FromTable(mySqlServer2008.EMP.s_TableName)

                .Where().ConditionColumnAndEqual(mySqlServer2008.DEPT.s_DEPTNO, mySqlServer2008.EMP.s_DEPTNO)

                .ConditionAndGreatEqual(myOracle.DEPT.s_DEPTNO, 20)

                .OrderBy().Asc(mySqlServer2008.DEPT.s_DEPTNO).Skip(1).Take(2).ExecuteDataSet();

int countSqlServer = dstSqlServer.Tables[0].Rows.Count;

 

//Sqlite 分页

dbCore = new DbCore(DatabaseType.SQLite, mySqlite.BaseEntity.GetConnectionString());

DataSet dstSqlite = dbCore.Select().Add(Entity.Common.SQLite.t_demo.s_z)

                    .Add(Entity.Common.SQLite.t_demo.s_a).Add("b")

                .From(Entity.Common.SQLite.t_demo.s_TableName)

                .OrderBy().Asc("z").Skip(1).Take(2).ExecuteDataSet();

int countSqlite = dstSqlite.Tables[0].Rows.Count;

 

//MySql 分页

dbCore = new DbCore(DatabaseType.MySql, myMySql.BaseEntity.GetConnectionString());

DataSet dstMySql = dbCore.Select().Add(myMySql.dept.s_DEPTNO).Add("DNAME").Add("LOC")

                .From(myMySql.dept.s_TableName)

                .OrderBy().Desc(myMySql.dept.s_DEPTNO).Skip(1).Take(2).ExecuteDataSet();

int countMySql = dstMySql.Tables[0].Rows.Count;

 

//DB2 分页

dbCore = new DbCore(DatabaseType.DB2, myDB2.BaseEntity.GetConnectionString());

DataSet dstDB2 = dbCore.Select().Add(myDB2.TESTENTITY.s_A).Add(myDB2.TESTENTITY.s_B)

                .Add(myDB2.TESTENTITY.s_C).Add(myDB2.TESTENTITY.s_D)

                .From(myDB2.TESTENTITY.s_TableName)

                .OrderBy().Asc(myDB2.TESTENTITY.s_A).Skip(1).Take(2).ExecuteDataSet();

int countDB2 = dstDB2.Tables[0].Rows.Count;

 

//PostgreSQL分页

dbCore = new DbCore(DatabaseType.PostgreSQL, myPostgreSQL.BaseEntity.GetConnectionString());

DataSet dstPostgreSQL = dbCore.Select().Add(myPostgreSQL.t_tabledemoColumn.c_a)

                .Add(myPostgreSQL.t_tabledemoColumn.c_b).Add(myPostgreSQL.t_tabledemoColumn.c_c)

                .From(myPostgreSQL.t_tabledemoColumn.TableName)//.FromCustom("tt")

                .OrderBy().Asc(myPostgreSQL.t_tabledemoColumn.c_a).Skip(1).Take(2).ExecuteDataSet();

int countPostgreSQL = dstPostgreSQL.Tables[0].Rows.Count;

 

 

//DM(达梦)分页

dbCore = new DbCore(DatabaseType.Dm, myDM.BaseEntity.GetConnectionString());

DataSet dstDM = dbCore.Select().Add(myDM.T_DEMO.s_C_A).Add(myDM.T_DEMO.s_C_B)

                .Add(myDM.T_DEMO.s_C_C).Add(myDM.T_DEMO1.s_C_NAME)

                .From(myDM.T_DEMO.s_TableName).FromTable(myDM.T_DEMO1.s_TableName)

                .Where().ConditionColumnAndEqual(myDM.T_DEMO.s_C_ID, myDM.T_DEMO1.s_C_ID)

                .OrderBy().Asc(myDM.T_DEMO.s_C_A).Skip(1).Take(2).ExecuteDataSet();

int countDM = dstDM.Tables[0].Rows.Count;

Skip为跳过元素的数量,Take为所取连续元素的数量。

目前这种分页方式支持的数据库:Oracle/SqlServer/MySql/Sqlite/PostgreSQL/
DM/DB2/Sybase IQ/Informix/Firebird/

 

通用分页也可以使用System.Database.Extend.TableHelp类。

 

2.、DbCore+SQL快捷用法

DbCore dbCore = new DbCore(myOracle.BaseEntity.GetConnectionString());

DataSet dst = dbCore.CreateSQL("select * from emp where deptno = :deptno")

    .AddInParameter("deptno", DbType.Int32, 20).ExecuteDataSet();

int intCount = dst.Tables[0].Rows.Count;

 

 

 

下载链接:

http://www.cnblogs.com/lxchutao/archive/2011/06/01/2065977.html

 

 

 

VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,融入了工厂设计模式及反射机制等。工具目前直接支持OracleSqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL及支持OleDb连接的数据库,从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可实现简单数据库添加、修改、删除、查询等操作,同时对添加和修改提供一个统一的保存操作(即实体会根据主键或实体条件值自动判断是更新还是插入);并提供大量的相关示例代码。同时由于考虑到数据库迁移等,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于任何类型的数据库访问操作等,对应文件会自动解析,既一次生成可用于多种类型的数据库的操作,且当数据库表字段发生重大变化时再生成一次即可。 所有数据库的操作都是以默认实体对应表的主键为准,当然也可指定,增加和更新合并为一个保存操作,由实体本身自己判断是增加还是更新,当然你若愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后即知。工具同时提供大量的示例代码(如System.Database.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,示例都是以对应数据库自带的示例库为例介绍的。 最新版本也可参见下列地址: http://download.youkuaiyun.com/source/3030634 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://qun.qq.com/air/#60873348/share
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的代码基于OO、ADO.NET、分层架构、ORM,改进的抽象工厂设计模式及反射机制等。目前直接支持OracleSqlServer、Sybase、DB2、Access、MySQLSQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库,并支持自定义分页查询(Skip/Take)。从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(Oracle)。详见安装后文件和工具帮助. 最新版下载地址也可参照: http://www.cnblogs.com/lxchutao/archive/2011/06/01/2065977.html http://www.cnblogs.com/lxchutao/articles/2065711.html http://files.cnblogs.com/lxchutao/EntitysCodeGenerate.rar
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的代码基于OO、ADO.NET、分层架构、ORM,改进的抽象工厂设计模式及反射机制等。目前直接支持OracleSqlServer、Sybase、DB2、Access、MySQLSQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库,并支持自定义分页查询(Skip/Take)。从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(Oracle)。详见安装后文件和工具帮助. 最新版下载地址也可参照: http://www.cnblogs.com/lxchutao/archive/2011/06/01/2065977.html http://www.cnblogs.com/lxchutao/articles/2065711.html http://files.cnblogs.com/lxchutao/EntitysCodeGenerate.rar
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的代码基于OO、ADO.NET、分层架构、ORM,改进的抽象工厂设计模式及反射机制等。 目前直接支持OracleSqlServer、Sybase、DB2、Access、MySQLSQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库,并支持自定义分页查询(Skip/Take)。同时也对LINQ的支持并提供轻量级简单日志组件的功能。 从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。 同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。 增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(。sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助。 下载地址 http://files.cnblogs.com/lxchutao/EntitysCodeGenerate.rar 或 http://www.cnblogs.com/lxchutao/archive/2011/06/01/2065977.html 附ORM技术交流QQ群:60873348
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的代码基于OO、ADO.NET、分层架构、ORM,改进的抽象工厂设计模式及反射机制等。 目前直接支持OracleSqlServer、Sybase、DB2、Access、MySQLSQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库,并支持自定义分页查询(Skip/Take)。同时也对LINQ的支持并提供轻量级简单日志组件的功能。 从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。 同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。 增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(。sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助。 下载地址 http://files.cnblogs.com/lxchutao/EntitysCodeGenerate.rar 附ORM技术交流QQ群:60873348
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值