//初始化数据库连接
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", )); //返回一条记录,可以省略select,用where开头,会自动查询出全部字段(不是*号)
var a=db.SingleOrDefault<article>("WHERE article_id=@0", ); //返回一条记录,可以From开头,会自动查询出全部字段(不是*号)
var a = db.SingleOrDefault<article>("FROM whatever WHERE id=@0", ); //如果有主键,可以这样写
var a = db.SingleOrDefault<article>(some_id); //分页,分页的代码会自动生成
var result=db.Page<article>(, ,"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,这种方式不支持自动添加Select
foreach (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>())
db.Delete <article>(); //执行Sql,不返回值
db.Execute("DELETE FROM articles WHERE draft<>0"); //插入记录
// Create the article
var a=new article();
a.title="My new article";
a.content="PetaPoco was here";
a.date_created=DateTime.UtcNow;
// Insert it
db.Insert(a); //修改记录
// Get a record
var a=db.SingleOrDefault<article>("SELECT * FROM articles WHERE article_id=@0", );
// Change it
a.content="PetaPoco was here again";
// Save it
db.Update(a); //修改一个属性更简洁的写法
db.Update("articles", "article_id", new { title="New title" }, ); //更新的另一种写法
db.Update<article>("SET title=@0 WHERE article_id=@1", "New Title", ); //更新指定的字段
a.Update(new string[] { "title" });
//也可以这样更新
db.Update<user>(u, new string[] { "title" }); //删除记录
//通过主键删除
db.Delete(a); //自定义删除
db.Delete<article>("WHERE article_id=@0", ); //事务,而且事物可以嵌套哦
using(var scope = db.GetTransaction())
{
//todo: Do transacted updates here // Commit
scope.Complete(); } //支持存储过程,还不支持out 参数?
db.Query<type>("CALL storedproc") // MySQL stored proc
db.Query<type>("EXECUTE stmt") // MySQL prepared statement
db.Query<type>("EXECUTE storedproc") // SQL Server //执行Sql
databaseQuery.Execute("insert into temp1 (t) values (@0)",
new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DbNull.Value }); //组装Sql
var id=;
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)
) //动态组装Sql
var id=;
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) //通过命名的参数来组装Sql
sql.Append("AND date_created>=@start AND date_created<=@end",
new
{
start=DateTime.UtcNow.AddDays(-),
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");

PetaPoco 基础操作的更多相关文章

  1. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【Learning Python】【第二章】Python基础类型和基础操作

    基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...

  4. Emacs学习心得之 基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...

  5. Git基础操作

    配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...

  6. activiti基础操作

    package activitiTest; import java.io.InputStream; import java.util.List; import java.util.zip.ZipInp ...

  7. 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》

    注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作   第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...

  8. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  9. php之文件基础操作

    在php中对文件的基础操作非常的简单,php提供的函数粗略的用了一遍. file_get_contents():可以获取文件的内容获取一个网络资源的内容,这是php给我封装的一个比较快捷的读取文件的内 ...

随机推荐

  1. git push到多个不同的远程仓库

    1.若现在本地有一个已经和github远程仓库关联好的本地仓库,平时都会将本地仓库push到github上. 2.有一天突然发现"码云"这个远程仓库网站,咦!这个还可以创建priv ...

  2. Redis Cluste部署

    一.原生搭建篇Cluster了解cluster的架构 Redis-cluster是使用的是一致性哈希算法来切分数据存储,总计16383个槽,分成16383/N(redis节点)个分区,存取时将key转 ...

  3. <selenium>selenium基础操作

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...

  4. Sequence POJ - 3581 后缀数组

    题意: 将一个序列分成非空的三部分,将每部分翻转后组合成一个新的序列, 输出这样操作得到的序列中字典序最小的序列 (保证第一个数是数组中最大的元素) 题解: 把数组当作串串. 因为第一个数最大,所以我 ...

  5. 2019-9-2-贡献自己的服务器搭建tor中转

    title author date CreateTime categories 贡献自己的服务器搭建tor中转 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 ...

  6. BZOJ1096 [ZJOI2007]仓库建设——斜率优化

    方程: $\Large f(i)=min(f(j)+\sum\limits_{k=j+1}^{i}(x_i-x_k)*p_k)+c_i$ 显然这样的方程复杂度为$O(n^3)$极限爆炸,所以我们要换一 ...

  7. bzoj2209 括号序列

    题意:给你一个括号序列.操作1:询问需要更改多少个括号使之匹配. 操作2:反转序列,左括号变成右括号. 操作3:翻转序列,倒置. 标程: #include<cstdio> #include ...

  8. Jmeter性能测试 入门【转】

    Jmeter性能测试 入门[转] Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter ...

  9. 「题解」:[BZOJ4358]permu

    问题: permu 时间限制: 30 Sec  内存限制: 512 MB 题面 题目描述 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域 连 ...

  10. DuiLib学习笔记3.颜色探究

    在前面两篇日志已经能使用xml了.今天准备好好的折腾一番,结果在颜色上却掉坑里了. 起初我在ps里取颜色为0104ff 这里01为R,04为G,ff为B 在控件的属性里有这样一个属性bkcolor=& ...