惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - BG5SBK

公告:胡搞瞎搞工作室换地方了! - BG5SBK 本周末厦门.NET俱乐部活动(借首页发下....不好意思) BG5SBK.FrameworkV2 新版本与帮助文档发布 BG5SBK.FrameworkV2.Data 支持语言化查询了 - BG5SBK 支持.NET 2.0又支持中文的NDoc 设计了一张89S51实验板 Flex Builder 2 注册码 OpCodes中文说明(转&收藏) 感光电路板制作(转&收藏) 上拉与下拉电阻(转&收藏) 虾米是怎样炼成的(转&收藏) GBA开发入门(转&收藏) - BG5SBK ARM的开发步骤(转&收藏) 关于SQL 参数的一次测试(重新又测了一次) 打火机组装摩托车(Cool!) 收藏几个有意思的SQL脚本 BG5SBK.FrameworkV2.DataLayer更新,附带详细说明 - BG5SBK 今天老婆给我画的画像 不用客户端软件的杂志平台Koo123
DIY 的 LinQ
BG5SBK · 2006-07-31 · via 博客园 - BG5SBK

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

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

像了解泛型运算符重载请看: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);


改:

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

查:

//Select [Member].* From [Member] Where [Member].[Name]=@P1 And [Member].[Password]=@P2
Select _select = new Select(Member.Columns._Any).From(Member.Columns._Table).Where(
    Member.Columns.Name 
== Member.Columns.Password & Member.Columns.Password ==
 password);

List
<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,大家不要扔石头啊