DIY 的 LinQ

先要感谢henry提供的很多宝贵意见和经验,让我少走了很多弯路

这几天用泛型运算符重载的办法封装了SQL语句,让C#的代码直接用于数据库查询,有点像C# 3.0里的LinQ,呵呵。
还在不断完善中,先放上来Show一下 emteeth.gif

像了解泛型运算符重载请看:http://www.cnblogs.com/BG5SBK/archive/2006/07/13/GenericOperatorOverride.html

增:
//Insert Into [Member] ([Code],[JoinTime],[Name],[Password]) values(@P1,@P2,@P3,@P4)
Insert _insert = new  Insert(Member.Columns._Table,
    Member.Columns.Code.Set(Guid.NewGuid().ToString()),
    Member.Columns.JoinTime.Set(DateTime.Now),
    Member.Columns.Name.Set(
"xxx" ),
    Member.Columns.Password.Set(CommonCode.HashEncrypt(
"123"0 )));

SqlQuery.DefaultInstance.ExecuteInsert(_insert);

删:
// Delete From [Member] Where [Member].[Name]=@P1 Or [Member].[JoinTime]=@P2
Delete _delete  =   new  Delete(Member.Columns._Table, Member.Columns.Name  ==   " yyy "   |  Member.Columns.JoinTime  ==  DateTime.Now);
SqlQuery.DefaultInstance.ExecuteDelete(_delete);

改:
None.gif//Update Member Set [Name]=@P2 Where [Member].[Name]=@P1
None.gif
Update _update = new Update(Member.Columns._Table, Member.Columns.Name == "xxx", Member.Columns.Name.Set("yyy" ));
None.gifSqlQuery.DefaultInstance.ExecuteUpdate(_update);

查:
None.gif//Select [Member].* From [Member] Where [Member].[Name]=@P1 And [Member].[Password]=@P2
None.gif
Select _select = new  Select(Member.Columns._Any).From(Member.Columns._Table).Where(
None.gif    Member.Columns.Name 
== Member.Columns.Password & Member.Columns.Password ==  password);
None.gif
None.gifList
<Member> _members = SqlQuery.DefaultInstance.ExecuteList<Member>(_select);

符合查询:
//Select [Member].*, [ToDoList].* From [Member],[ToDoList] Where [Member].[Code]=[ToDoList].[UserCode]
Select _select = new  Select(Member.Columns._Any, ToDoList.Columns._Any);
_select.From(Member.Columns._Table, ToDoList.Columns._Table);
_select.Where(Member.Columns.Code 
==  ToDoList.Columns.UserCode);

System.Data.DataSet _result 
= SqlQuery.DefaultInstance.ExecuteDataSet(_select);

排序查询:
//Select [Member].* From [Member] Order By [Member].[JoinTime] desc
Select _select = new  Select(Member.Columns._Any).From(Member.Columns._Table).OrderBy(Member.Columns.JoinTime.Desc);

List
<Member> _members = SqlQuery.DefaultInstance.ExecuteList<Member>(_select);

As支持:
//Select [Table1].[Name] as [UserName] From [Member] as [Table1]
Select _select = new Select(Member.Columns.Name.At("Table1").As("UserName")).From(Member.Columns._Table.As("Table1" ));

List
<Member> _members = SqlQuery.DefaultInstance.ExecuteList<Member>(_select);


基本就这些了,呵呵,随便取名叫DIY的 LinQ,大家不要扔石头啊shades_smile.gif

转载于:https://www.cnblogs.com/BG5SBK/archive/2006/07/31/DIY_LinQ.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值