SQLite
文章平均质量分 75
honey52570
这个作者很懒,什么都没留下…
展开
-
数据库组件 Hxj.Data (一)(介绍篇)
Hxj.Data经过几个月的开发,终于发布了一个版本,并同时发布实体生成工具。在开发过程参考了多个ORM框架,特别是NBear,MySoft等。吸取了他们的一些精华,加入自己的新思想。 目前支持Sql2000/2005,MsAccess,Oracle,SQLite,MySQL,如有需要可再扩展。 数据库实体生成的代码Northwind数据库中Products原创 2010-05-06 19:47:00 · 508 阅读 · 0 评论 -
数据库组件 Hxj.Data (十九) (事务二)
对事务有进行了更新,又得去下载一下新版本,对上一版本兼容,扩充了DbTrans方法。 相比十七节(事务)中的事务写法简洁了一些。如下 using (DbTrans trans = DbSession.Default.BeginTransaction()){ trans.Update(Products._.ProductName, "apple", Products._.ProductID == 1); trans.Update(Products._.ProductName,原创 2010-06-02 20:32:00 · 335 阅读 · 0 评论 -
数据库组件 Hxj.Data (十八) (批处理)
批处理就是提交的脚本不是马上执行,而是到一定数量才提交。还是先上例子using (DbBatch batch = DbSession.Default.BeginBatchConnection()){ batch.Update(Products._.ProductName, "apple", Products._.ProductID == 1); batch.Update(Products._.ProductName, "pear", Products.原创 2010-06-01 20:10:00 · 342 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十) (分页)
分页在前面好几节中的列子中已经出现,现在在详细讲解一下。 有三种方法去实现: 1、Top(int topCount) 方法 在sqlserver和msaccess中其实就是top , 在oracle通过rownum实现。 2、From(int startIndex, int endIndex) 从startIndex条到endIndex条之间的记录数。 3、Page(int pageSize, int pageIndex) 每页pageSize条,第pageIndex页 下原创 2010-06-03 22:02:00 · 327 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十一) (ToScalar)
经过周末的通宵,发布了组件1.0版本。 对组件进行了扩展,最大的修改就是增加缓存查询,以获得更好的性能。 本节先讲一些小的扩展修改。 之前版本ToScalar()只是返回object。 现在增加了ToScalar()方法,组件自动转换类型。 例如: DbSession.Default.From().Select(Products._.ProductID).Top(1).ToScalar();这样就返回类型为int类型,免去转换的代码。当查询出来的值为null 或者原创 2010-06-10 13:30:00 · 401 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十二) (缓存)
首先我是做web开发的,所以很多会偏向web的,组件使用的缓存是System.Web.HttpRuntime.Cache。 组件在默认情况下是关闭缓存的。 所以要开启缓存查询要做一下配置。 先看一下例子配置: HxjCacheConfig 节点的 enable 表示是否开启缓存,默认是关闭状态,除非显式开启 enable="true"。 entities 节原创 2010-06-12 09:21:00 · 422 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十三) (自定义缓存)
配置的缓存并不能满足我们的需求,例如有时候需要刷新缓存,或者某次查询缓存时间或者缓存依赖不一样等。 刷新缓存 例如: DbSession.Default.From().Where(Products._.ProductID == 1).Refresh().ToFirst();Refresh()方法设置了刷新缓存,即不从缓存中读取,直接从数据库读取最新数据,并重新缓存。 设置查询的缓存有效期。例如:DbSession.Default.From().Where(原创 2010-06-13 22:21:00 · 299 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十四)(Sqlite数据库)
Hxj.Data(V1.3)组件增加了对Sqlite数据库的支持。下载最新版本 以及实体生成工具也同时发布(V1.3)版本支持Sqlite数据库的实体生成。 使用Sqlite数据库开发,需要引用Hxj.Data、Hxj.Data.Sqlite、System.Data.SQLite这三个DLL。 config配置数据库连接例如: 示例代码: DbSession session = new Hxj.Data.DbSession("SqliteConnectionString原创 2010-06-15 13:59:00 · 351 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十五)(数据库连接配置 - connectionStrings节点)
本节补充讲述connectionStrings的设置。 要谢谢永远的阿哲的提醒。 组件读取connectionStrings节点的配置的时候会根据providerName来判断是哪个数据库。 数据库 providerName Sql server 2000 1、System.Data.SqlClient 2、Hxj.Data.SqlServer Sql s原创 2010-06-18 09:37:00 · 364 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十六)(Oracle 配置)
Oracle配置在connectionStrings节点的providerName为System.Data.OracleClient或者Hxj.Data.Oracle之外,其他操作使用并没有什么不同。 不过相对于Oracle的自增长列有所不同,要做适当的处理。 Oracle是通过Sequence来获取增长的值,不同于Sql Server可以方便的设置列的自增长。 在这里通过修改生成的实体就可以完成自增长列的设置。 例如: 建了一个Sequence,名为:mysequence 表中需要自增的原创 2010-06-20 23:09:00 · 344 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十七)(字段组合更新)
Hxj.Data V1.5.1版本开始支持字段组合更新。 例如:update table set a=b+c update table set a=a+1 (+、-、*、/、%)依次类推。 下面将举具体的例子。(例子只是为了测试效果,没有实际意义) 例一、 DbSession.Default.Update(Products._.UnitPrice, Products._.ReorderLevel + Products._.UnitPrice, Products._.Pro原创 2010-06-22 08:41:00 · 339 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十八)(事务中的查询,查询字段字中的子查询,WhereClip的隐式转换)
本节讲述新版本中新加的功能,以及如何使用。 事务中的查询 应用场景,有时我们需要事务更新、添加、删除表的操作,在提交事务又需要对这些进行查询(不想降低事务级别让其他连接查询事务中的数据变动),在事务内部进行的查询。 其实只是在DbTrans中增加了FromSection方法。 示例代码如下: using (DbTrans trans = DbSession.Default.BeginTransaction()){ //修改了第一条记录原创 2010-06-22 08:42:00 · 377 阅读 · 0 评论 -
数据库组件 Hxj.Data (三十一)(MySQL篇)
组件V1.7版本增加对MySQL的支持(测试了MySQL 5.1版本)。 下面来演示如何使用。 首先添加Connectionstring public static DbSession MySqlTest = new DbSession("MySQLConnectionString"); 在test数据库中新建了一张表mtable,字段只有两个:mid int 自增长,mname varchar(50) 然后使用实体生成工具生成实体。原创 2010-06-22 08:46:00 · 422 阅读 · 0 评论 -
数据库组件 Hxj.Data (二十九)(DbSession的推荐写法)
在系列文章中的示例都是DbSession.Default做为操作数据的入口。 Default是读取config文件中connectionStrings节点的最后一个节点的配置。 在实际项目中还是推荐创建一个DbSession。 可以如下写法: public class Db{ public readonly static DbSession Northwind = new DbSession("NorthwindConnectionString"); static Db(原创 2010-06-22 08:43:00 · 524 阅读 · 0 评论 -
数据库组件 Hxj.Data (十七) (事务)
首先对事务进行了升级,所以又要重新去下载一下新版本。 组件提供了简单的事务,并没有过多的封装。 先上个例子: using (DbTrans trans = DbSession.Default.BeginTransaction()){ DbSession.Default.UpdateProducts>(Products._.ProductName, "apple", Pro原创 2010-05-28 08:44:00 · 280 阅读 · 0 评论 -
数据库组件 Hxj.Data (十六) (查询的字段)
在查询没有设置查询字段,组件默认是返回所有字段信息,即select * from table 那在查询中如何设置需要返回的字段信息呢? 在之前几节中的例子已经存在设置查询字段,是通过 select方法来设置的。 先上例子: DbSession.Default.FromProducts>() .Select(Products._.ProductID, Pr原创 2010-05-26 08:13:00 · 372 阅读 · 0 评论 -
数据库组件 Hxj.Data (二)(实体生成工具)
实体生成工具的界面如下图: 目前工具支持MsAccess,Sql Server, Sqlite, Oracle数据库的实体生成。 下面单个实体生成演示, Northwind数据库的Customers表 也可以批量生成数据库所有表的实体。如下图 实体的生成很简单。 下面章节将讲述Hxj.Data的具体使用。原创 2010-05-07 09:16:00 · 391 阅读 · 0 评论 -
数据库组件 Hxj.Data (三)(查询操作篇)
Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如:From,Insert,Update,Delete等常用方法。 DbSession.Default是一个默认的DbSession。在默认情况下会自动读取web.config/app.config配置文件中connectionStrings节点的最后一个配置。 可以通过条用DbSessio原创 2010-05-10 10:39:00 · 380 阅读 · 0 评论 -
数据库组件 Hxj.Data (五)(更新操作篇)
上节讲完添加操作,这节将讲述更新操作,Update的使用。 先来例子: //获取Products表第一行Products p = DbSession.Default.From().ToFirst();//开启修改 (修改操作之前 必须执行此方法)p.Attach();p.ProductName = "apple";//获取修改记录//List list= p.GetModify原创 2010-05-13 17:16:00 · 354 阅读 · 0 评论 -
数据库组件 Hxj.Data (四)(添加操作篇)
上一节讲述如何使用查询。这节将讲添加数据操作即Insert方法的使用. 先上例子(使用asp.net) 这个是页面html代码: "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"http://www.w3.org/1999/xhtml"原创 2010-05-12 23:18:00 · 355 阅读 · 0 评论 -
数据库组件 Hxj.Data (六)(删除操作篇)
上节讲述数据库更新操作,本节将讲述删除操作。 上代码: //删除 条件 ProductID=2 int returnvalue = DbSession.Default.Delete(Products._.ProductID == 2);Delete很简单,只要加了条件就可以了。 与之等效的还有如下操作: int returnva原创 2010-05-14 12:34:00 · 283 阅读 · 0 评论 -
数据库组件 Hxj.Data(七) (sql篇)
上一节讲述的是删除操作,本节将讲述如何直接执行sql语句。 直接执行sql语句是使用FromSql方法。 DbSession.Default.FromSql("select * from products").ToDataTable(); 这样看起来亲切多了吧,直接sql就可以执行。 当然也可添加参数的啊。 DbSession.Defau原创 2010-05-15 02:37:00 · 410 阅读 · 0 评论 -
数据库组件 Hxj.Data (九) (DbSession的其他介绍)
本节将讲述DbSession的其他简单辅助方法。 SUM方法 DbSession.Default.Sum(Products._.UnitPrice, Products._.CategoryID == 2); 返回categroyid=2的unitprice合计。 AVG方法 DbSession.Default.Avg(Produ原创 2010-05-16 13:42:00 · 386 阅读 · 0 评论 -
数据库组件 Hxj.Data (八)(存储过程篇)
上一节讲述的sql语句的执行,本节将讲述的是存储过程的执行。 执行存储过程是通过FromProc方法来完成的。 执行无参数存储过程如下: DbSession.Default.FromProc("Ten Most Expensive Products").ToDataTable();"Ten Most Expensive Products"就是存储过程名称。原创 2010-05-15 15:09:00 · 326 阅读 · 0 评论 -
数据库组件 Hxj.Data (十) (输出组件执行的sql)
前面有TX留言问分页的sql是怎么样的,看完这篇你也就知道了。 组件可以输出执行的sql,方便查看sql生成的语句是否有问题。 通过注册事件来输出sql DbSession.Default.RegisterSqlLogger(database_OnLog); private string sql;void database_OnLog(string log原创 2010-05-17 14:19:00 · 306 阅读 · 0 评论 -
数据库组件 Hxj.Data (十三) (子查询)
查询条件的值来自另外一次查询。 例如 sqlserver sql: select * from products where categoryid=(select top 1 categoryid from categories where categoryname=’produce’) 这条sql的实现代码如下: DbSession.Default.FromProducts>()原创 2010-05-21 00:43:00 · 326 阅读 · 0 评论 -
数据库组件 Hxj.Data (十二) (模糊查询、简单的in,not in查询)
条件的生成都是通过对表中字段进行的。 比如: Products._.UnitPrice > 1Products._.CategoryID == 2这些是简单的比较。 下面来介绍通过like 模糊查询该怎么做。先上代码,Products._.ProductName.Contain("apple")这句等效sql就是(sqlserve原创 2010-05-20 13:46:00 · 373 阅读 · 0 评论 -
数据库组件 Hxj.Data (十五) (查询的排序、分组)
本节将讲述查询的排序(order by) 和 分组(group by)。 先说排序 在分页中如果没有指定排序,组件会默认一个排序来实现分页。 例如 DbSession.Default.FromProducts>() .Page(10, 2) .Where(Products._.CategoryID.SelectIn(原创 2010-05-23 14:06:00 · 394 阅读 · 0 评论 -
数据库组件 Hxj.Data (十四) (联合查询)
联合查询在前面的例子中已经出现过,只不过没有细说。 先来个例子吧 DbSession.Default.FromCustomers>() .InnerJoinOrders>(Customers._.CustomerID == Orders._.CustomerID) .ToDataTable();生成的sql原创 2010-05-22 20:59:00 · 479 阅读 · 0 评论 -
数据库组件 Hxj.Data (三十)(Asp.Net 页面自动赋值与取值)
在项目中的页面中经常会遇到界面的赋值与取值,特别是页面中项特别多的时候,取值和赋值往往是体力活。 在组件中添加了一个简单的辅助,取值通过Request.From[“”]来实现,赋值则document.getElementById(“”).value来实现。 下面我们来看示例代码: 例子是:Northwind数据库的Products表 页面代码: ProductName: SupplierID: CategoryID: QuantityPerUnit:原创 2010-06-22 08:44:00 · 451 阅读 · 0 评论