SQL查询语句对象化的实现(C#)

燕京998

燕京998

2016-01-29 14:56

SQL查询语句对象化的实现(C#),SQL查询语句对象化的实现(C#)
 

在开发数据库应用的过程难免会编写大量的SQL语句,其中大部份是查询语句;为不同情况编写查询语句是一件很烦琐的事件。用过hibernate或Nhibernate会了解到把SQL查询语句对象化后使用起非常方便和快捷;也大大减少在编写查询SQL语句所带来的错误等问题。

       前段时间在编写一个数据处理类的时候同样遇到这个问题,经过一段时间思考和设计现实现了SQL查询语句对象化的功能;在这里我把自己小小的成果共享一下。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/mysql/)

在讲解前先看几个例子(数据是SQLServer的Northwind)注意:例子中所涉及的除查询对象化外还包含整个数据处理类的使用,那部分还在设计和完善当中。

 

       1)以上语句是查询订单ID为10264的订单信息

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/mysql/)

       using(HFSoft.Data.IDataSession session = HFSoft.Data.DataSessionFactory.OpenSession())

     {

         session.Open();

         HFSoft.Data.QueryCmd query = new QueryCmd("Orders");

         query.Expreesion.Add(new HFSoft.Data.EqExpression("OrderID",10264));

          System.Data.DataSet myDS = session.ExecuteDataSet(query.BuilderCmd(session));

     }

     对象生成的SQL语句:

SELECT * FROM Orders  where  1=1  And (OrderID = @OrderID0)

 

     2)以上语句是查询订单ID大于10264并且小于10600的订单信息

       using(HFSoft.Data.IDataSession session = HFSoft.Data.DataSessionFactory.OpenSession())

     {

         session.Open();

         HFSoft.Data.QueryCmd query = new QueryCmd("Orders");

         query.Expreesion.Add(  new HFSoft.Data.LeExpression("OrderID",10264),

                                 new HFSoft.Data.RtExpression("OrderID",10600));

         System.Data.DataSet myDS = session.ExecuteDataSet(query.BuilderCmd(session));

     }

     对象生成的SQL语句:

SELECT * FROM Orders  where  1=1  And (OrderID @OrderID0) And (OrderID < @OrderID1)

 

4)以上语句是查询订单ID大于10264并且小于10600或编号是10601,10602,10605的订单信息

using(HFSoft.Data.IDataSession session = HFSoft.Data.DataSessionFactory.OpenSession())

{

         session.Open();

         HFSoft.Data.QueryCmd query = new QueryCmd("Orders");

         query.Expreesion.Add(  new HFSoft.Data.LeExpression("OrderID",10264),

                       new HFSoft.Data.RtExpression("OrderID",10600));

         query.Expreesion.Add(HFSoft.Data.UintType.Or,new HFSoft.Data.InExpression("OrderID",new int[]{10601,10602,10605}));

         System.Data.DataSet myDS = session.ExecuteDataSet(query.BuilderCmd(session));       }

对象生成的SQL语句:

SELECT * FROM Orders  where  1=1  And (OrderID @OrderID0) And (OrderID < @OrderID1) Or (OrderID in (@OrderID20,@OrderID21,@OrderID22))

 

从上面的例子我们可以看到对不同的条件进行数据查询只是一件很简单的事情,你并不用为不同的查询情况写相应SQL语句。

接下来讲术这个查询对象实现,对象的

展开更多 50%)
分享

猜你喜欢

SQL查询语句对象化的实现(C#)

MySQL mysql数据库
SQL查询语句对象化的实现(C#)

SQL 查询语句积累

MySQL mysql数据库
SQL 查询语句积累

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

《Effective C#》:使用成员初始化语句

编程语言 网络编程
《Effective C#》:使用成员初始化语句

防SQL注入:生成参数化的通用分页查询语句

编程语言 网络编程
防SQL注入:生成参数化的通用分页查询语句

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C#箴言:使用构造函数初始化语句

编程语言 网络编程
C#箴言:使用构造函数初始化语句

SQL查询语句使用精华

SQLServer
SQL查询语句使用精华

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MyGeneration连接MySql数据库的解决办法

MyGeneration连接MySql数据库的解决办法

《全民飞机大战》怎么躲避子弹

《全民飞机大战》怎么躲避子弹
下拉加载更多内容 ↓