PetaPoco的使用Demo手册
来源:互联网 发布:阿里云青岛机房电话 编辑:程序博客网 时间:2024/06/08 16:43
PetaPoco的使用Demo手册
//初始化数据库连接var db=new PetaPoco.Database("connectionStringName");//查询单个值long count=db.ExecuteScalar<long>("SELECT Count(*) FROM articles");//返回一条记录var a = db.SingleOrDefault<article>("SELECT * FROM articles WHERE article_id=@0", 123));//返回一条记录,可以省略select,用where开头,会自动查询出全部字段(不是*号)var a=db.SingleOrDefault<article>("WHERE article_id=@0", 123);//返回一条记录,可以From开头,会自动查询出全部字段(不是*号)var a = db.SingleOrDefault<article>("FROM whatever WHERE id=@0", 123);//如果有主键,可以这样写var a = db.SingleOrDefault<article>(some_id);//分页,分页的代码会自动生成var result=db.Page<article>(1, 20,"SELECT * FROM articles WHERE category=@0 ORDER BY date_posted DESC", "coolstuff");// 逐行查询每条记录,一次只从数据库表中取一条数据foreach (var a in db.Query<article>("SELECT * FROM articles")){ Console.WriteLine("{0} - {1}", a.article_id, a.title);}//动态查询,返回dynamic,这种方式不支持自动添加Selectforeach (var a in db.Fetch<dynamic>("SELECT * FROM articles")){ Console.WriteLine("{0} - {1}", a.article_id, a.title);}//查询单个字段,返回非Poco对象,支持所有的Type.IsValueType,字符串和byte数组foreach (var x in db.Query<long>("SELECT article_id FROM articles")){ Console.WriteLine("Article ID: {0}", x);}//检查主键是否存在if (db.Exists<article>(23)) db.Delete <article>(23);//执行Sql,不返回值db.Execute("DELETE FROM articles WHERE draft<>0");//插入记录// Create the articlevar a=new article();a.title="My new article";a.content="PetaPoco was here";a.date_created=DateTime.UtcNow;// Insert itdb.Insert(a);//修改记录// Get a recordvar a=db.SingleOrDefault<article>("SELECT * FROM articles WHERE article_id=@0", 123);// Change ita.content="PetaPoco was here again";// Save itdb.Update(a);//修改一个属性更简洁的写法db.Update("articles", "article_id", new { title="New title" }, 123);//更新的另一种写法db.Update<article>("SET title=@0 WHERE article_id=@1", "New Title", 123);//更新指定的字段a.Update(new string[] { "title" });//也可以这样更新db.Update<user>(u, new string[] { "title" });//删除记录//通过主键删除db.Delete(a);//自定义删除db.Delete<article>("WHERE article_id=@0", 123);//事务,而且事物可以嵌套哦using(var scope = db.GetTransaction()){ //todo: Do transacted updates here // Commit scope.Complete();}//支持存储过程,还不支持out 参数?db.Query<type>("CALL storedproc") // MySQL stored procdb.Query<type>("EXECUTE stmt") // MySQL prepared statementdb.Query<type>("EXECUTE storedproc") // SQL Server//执行SqldatabaseQuery.Execute("insert into temp1 (t) values (@0)", new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DbNull.Value });//组装Sqlvar id=123;var a=db.Query<article>(PetaPoco.Sql.Builder .Append("SELECT * FROM articles") .Append("WHERE article_id=@0", id) .Append("AND date_created<@0", DateTime.UtcNow))//动态组装Sqlvar id=123;var sql=PetaPoco.Sql.Builder .Append("SELECT * FROM articles") .Append("WHERE article_id=@0", id);if (start_date.HasValue) sql.Append("AND date_created>=@0", start_date.Value);if (end_date.HasValue) sql.Append("AND date_created<=@0", end_date.Value);var a=db.Query<article>(sql)//通过命名的参数来组装Sqlsql.Append("AND date_created>=@start AND date_created<=@end", new { start=DateTime.UtcNow.AddDays(-2), end=DateTime.UtcNow } );//组装Sql还可以这样var sql=PetaPoco.Sql.Builder() .Select("*") .From("articles") .Where("date_created < @0", DateTime.UtcNow) .OrderBy("date_created DESC");//还可以更复杂var sql = Sql.Builder .Select("*") .From("articles") .LeftJoin("comments").On("articles.article_id=comments.article_id");
0 0
- PetaPoco的使用Demo手册
- PetaPoco Sql 语法及使用
- petapoco 使用 MiniProfiler Glimpse监控
- PetaPoco的T4模板优化改进
- PetaPojo —— JAVA版的PetaPoco
- PetaPojo —— JAVA版的PetaPoco
- 使用 C# + SQLite + PetaPoco + django 快速打造桌面程序
- Centos 6.4 Mono下使用Petapoco与Oracle数据库
- petapoco中遇到的问题(对象必须实现 IConvertible)
- man手册的使用
- PetaPoco入门
- PetaPoco简介
- 游标的使用demo
- facebooksdk demo的使用
- XFire的DEMO使用
- NSTimer的使用Demo
- ztree的使用demo
- JsTree的使用demo
- Windos上Eclipse连接外部Hadoop的HDFS时,拒绝连接解决方案
- 第九周项目3--稀疏矩阵的三元组表示的实现及应用1
- NOIP[2013] 华容道
- 浅谈Runnable和Thread的区别
- Android 实用技巧 --- 命令godir croot
- PetaPoco的使用Demo手册
- C++ 基本类型的转换和static_cast等
- 安卓之Intent
- 【Ubuntu14.04】【Spark】单机版搭建实录
- 第十周--建立二叉树算法库
- Hibernate中@Entity @Table(name="*",schema="*")的设置与应用
- JDK中的proxy动态代理
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- GPUImage setInputRotation