一、使用sql及存储过程

创新互联建站成立于2013年,我们提供高端重庆网站建设公司、成都网站制作公司、成都网站设计、网站定制、全网营销推广、微信平台小程序开发、微信公众号开发、seo优化服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为汽车玻璃修复企业提供源源不断的流量和订单咨询。
1)使用List
1.使用sql ,体验原生态的感觉
- string sql="select * from Class where ClassName = @";
 - string sql2="select * from Class where DateTimem = @";
 - List
 > mylist=db.ExecuteSqlToDictionaryList(sql,"boy'"); - List
 > mylist2=db.ExecuteSqlToDictionaryList(sql2,DateTime.Parse("2013-10-10 14:40:08")); - foreach(var oneClass in mylist){
 - string className=oneClass["className"].To
 (); - long id=oneClass["Classid"].To
 (); - DateTime datetimem=oneClass["datetimem"].To
 ();//不用区分大小写 - Console.WriteLine(className+" "+id+" "+datetimem);
 - }
 
2.使用mql,智能感知带来的优雅体验
- var list=db.GetDictionaryList(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(0)))
 
2)MQL 全面接触
2.1 MQL的标准查询
- var mm=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName).
 - Where(ClassSet.ClassName.Contains("s").And(ClassSet.ClassID.BiggerThan(9)));
 - SELECT [Class].[ClassID],[Class].[ClassName] FROM [Class] WHERE [Class].[ClassName] LIKE @p1 AND [Class].[ClassID]>@p2
 - @p1=%s%
 - @p2=9
 
2.2 MQL的嵌套查询(含有Top查询:支持mysql、oracle、postgreSQL、sqlserver、sqlite)
- var qiantao=ScoreSet.SelectAll().Where(
 - ScoreSet.UserID.In(UserSet.Select(UserSet.UserID).Where(
 - UserSet.ClassID.In(
 - ClassSet.Select(ClassSet.ClassID).Where(
 - ClassSet.ClassName.Equal(c.ClassName).And(ClassSet.ClassID.BiggerThan(0))
 - )
 - )
 - )
 - )
 - ).Top(1);
 - SELECT TOP 1 [Score].* FROM [Score] WHERE [Score].[UserID] IN (SELECT [User].[UserID] FROM [User] WHERE [User].[ClassID] IN (SELECT [Class].[ClassID] FROM [Class] WHERE [Class].[ClassName]=@p1 AND [Class].[ClassID]>@p2 ) )
 - @p1=综合测试ClassName2
 - @p2=0
 
2.3 MQL的分组查询
- var mql=ScoreSet.Select(ScoreSet.ScoreM.Sum().AS("sum"),ScoreSet.TypeName).
 - Where(ScoreSet.ScoreM.BiggerThanOrEqual(100)).
 - GroupBy(ScoreSet.TypeName).
 - Having(ScoreSet.ScoreM.Sum().BiggerThan(300));
 - SELECT SUM([Score].[ScoreM]) AS 'sum',[Score].[TypeName] FROM [Score] WHERE [Score].[ScoreM]>=@p1 GROUP BY [Score].[TypeName] HAVING SUM([Score].[ScoreM])>@p2
 - @p1=100
 - @p2=300
 
2.4 MQL的连接查询
- var m1=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName)
 - .LeftJoin(
 - UserSet.Select(UserSet.UserID))
 - .ON(ClassSet.ClassID.Equal(UserSet.UserID))
 - .Where(UserSet.UserID.BiggerThan(9));
 - SELECT [Class].[ClassID],[Class].[ClassName],[User].[UserID] FROM [Class] LEFT JOIN [User] ON [Class].[ClassID]=[User].[UserID] WHERE [User].[UserID]>@p1
 - @p1=9
 
2.5 MQL的Union查询
- var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))
 - .Union(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));
 - var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))
 - .UnionAll(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));
 - SELECT [Class].* FROM [Class] WHERE [Class].[ClassID]>@p1 UNION SELECT [Class].* FROM [Class] WHERE [Class].[ClassID]>@p2
 - @p1=1
 - @p2=2
 - SELECT [Class].* FROM [Class] WHERE [Class].[ClassID]>@p1 UNION ALL SELECT [Class].* FROM [Class] WHERE [Class].[ClassID]>@p2
 - @p1=1
 - @p2=2
 
2.6 MQL的使用预览
- public static void Main(string[] args)
 - {
 - using (var db=Db.CreateDefaultDb()) {
 - db.TransactionEnabled=true;
 - db.DebugEnabled=true;
 - Console.WriteLine("---------------嵌套查询---------------------");
 - var qiantao=ScoreSet.SelectAll().Where(
 - ScoreSet.UserID.In(UserSet.Select(UserSet.UserID).Where(
 - UserSet.ClassID.In(
 - ClassSet.Select(ClassSet.ClassID).Where(
 - ClassSet.ClassName.Equal(c.ClassName).And(ClassSet.ClassID.BiggerThan(0))
 - )
 - )
 - )
 - )
 - ).Top(1);
 - Console.WriteLine("---------------分组查询---------------------");
 - var mql=ScoreSet.Select(ScoreSet.ScoreM.Sum().AS("sum"),ScoreSet.TypeName).Where(ScoreSet.ScoreM.BiggerThanOrEqual(100)).GroupBy(ScoreSet.TypeName).Having(ScoreSet.ScoreM.Sum().BiggerThan(300));
 - Console.WriteLine("---------------连接查询---------------------");
 - var m1=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName)
 - .LeftJoin(
 - UserSet.Select(UserSet.UserID))
 - .ON(ClassSet.ClassID.Equal(UserSet.UserID))
 - .Where(UserSet.UserID.BiggerThan(9));
 - }
 - Console.WriteLine("---------------Union测试---------------------");
 - using (var db=Db.CreateDefaultDb()) {
 - db.TransactionEnabled=true;
 - db.DebugEnabled=true;
 - var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))
 - .Union(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));
 - }
 - }
 
3)使用DataSet
1.使用存储过程
- DataSet dataset=db.ExecuteProToDataSet("存储过程名",参数一,参数二);
 
2.使用sql
- DataSet dataset=db.ExecuteSqlToDataSet(sql,"boy");
 
3.使用mql
- DataSet dataset=db.GetDataSet(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(0)));
 
4)使用xml配置sql查询
1.配置config节点
//如果不是全路径,则默认在dll生成目录 
2.配置xml(sql.xml)
select name from user where id>@ 查询用户名(描述信息) 
3.使用id进行查询
- var list=db.GetDictionaryList(XmlHelper.GetSqlXmlByID("getname"),"boy");
 
5)sql之王者归来
使用GetDynamicList ,让你体验另一种自由
- object,但在.net 4.0下面,您可以用dynamic直接取值.
 - string sql22="select * from Score";
 - dynamic list22=db.GetDynamicList(sql22,"Score");
 - foreach(var a in list22){
 - Console.WriteLine(a.ID+"--"+a.ScoreM+"--"+a.UserID+"--"+a.TypeName);//都是强类型
 - }
 
以下是体验强类型:)
原文链接:http://www.cnblogs.com/humble/p/3380065.html
                当前文章:欣赏另一种Orm的设计风格:大道至简
                
                转载源于:http://www.csdahua.cn/qtweb/news25/222625.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网