自已做的框架RJ 第七篇----------------查询篇 中

本文详细介绍了在C#代码中使用SQL查询的方法和技巧,包括如何编写更易读的SQL语句、使用匿名对象、数组、单条数据查询、筛选、联表查询等,并提供了具体的代码示例。

虽然没人看不过还是继续写

上一篇写的是直接传SQL语句的方法 在C#代码中看到SQL怎么都觉得不舒服好了现在看下C#的写法


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> new { s = (a.D_Id * 5 ), b = a.U_UserName });

db.ToIList
< RJ.Model.Users > (z)

生成的SQL语句如下


  
SELECT ( [ Users ] . [ D_Id ] * @pj02gde4ln6dfwj ) [ s ] , [ Users ] . [ U_UserName ] [ b ] FROM [ Users ]

看起是不是要舒服点了呢如果不想用匿名对象的也可以写成数组   


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> new [] { (a.D_Id * 5 ).Alias( " D_Id " ), a.U_UserName });

db.ToIList
< RJ.Model.Users > (z)

生成的SQL语句如下


  
SELECT ( [ Users ] . [ D_Id ] * @pq6xgwpsclvtuco ) [ D_Id ] , [ Users ] . [ U_UserName ] FROM [ Users ]

只有一个字段时也可以写成  


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> a.D_Id);

db.ToIList
< RJ.Model.Users > (z)

生成的SQL语句如下


  
SELECT [ Users ] . [ D_Id ] FROM [ Users ]


如果只想取单条数据时可以写成


  
RJ.Model.Users user = db.Single < RJ.Model.Users > (z);

生成的SQL语句如下


  
SELECT TOP 1 [ Users ] . [ D_Id ] FROM [ Users ]

不想返回对象也可以直接返回

  
DataSetDataSet user = db.ToDataSet(z);


在来看看筛选


  
var z = new SelectSqlSection < RJ.DModel.Users > ();
z.Where(a
=> a.D_Id > 5 );

  
SELECT * FROM [ Users ] WHERE [ Users ] . [ D_Id ] > @pjackrftwkjpya0

多个条件  


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.Where(a
=> (a.D_Id > 5 | a.D_Id == 2 ) & a.U_Id > 5 );

  
SELECT * FROM [ Users ] WHERE (( [ Users ] . [ D_Id ] > @pn13yc95bj366hk OR [ Users ] . [ D_Id ] = @p25vpkscoijdtlx ) AND [ Users ] . [ U_Id ] > @pas9pm39urm0s8l )

联表查询
Join 

  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.Join
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
SELECT * FROM [ Users ] INNER JOIN [ Department ] ON [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]

LeftJoin


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.LeftJoin
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

RightJoin 


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.RightJoin
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
SELECT * FROM [ Users ] LEFT OUTER JOIN [ Department ] ON [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]

普通的


  
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddForm
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
SELECT * FROM [ Users ] , [ Department ] WHERE [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]

RJ框架更新中~~~~

转载于:https://www.cnblogs.com/MyRJ/archive/2011/06/22/2086667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值