Sqlite PetaPoco连接

之前用sql server时,用的PetaPoco作为ORM,用起来比较顺手。现在有个项目也需要配置数据库,因为要求较少,就选择了sqlite,按照和配置都比较简单。

下面就简单的描述一下,以便以后使用(脑子也没有之前好用了,感觉记下来会好些)。

首先用SQLite Expert Professional 创建了一个数据库,然后创建一个表名为Student。

 在wpf中使用nuget添加petepoco,

 在解决方案资源管理器会添加一个Models文件夹,

 对应的app.config中配置如下:

 <connectionStrings>
    <add name="sqlite" connectionString="Data Source=|DataDirectory|Test.db;Pooling=true;FailIfMissing=false"
   providerName="System.Data.SQLite" />
</connectionStrings>

Data Source=|DataDirectory|Test.db,好像只能放到bin的debug或者release下,放到别的目录怎么配置,还没有找到解决办法。

同时要注意在将SQLite.Interop.dll放到对应目录下,不然会报错。

在程序中创建一个类Student,加上特性[TableName("Student")]  和  [PrimaryKey("id")]   。

using PetaPoco;

namespace WPF_PetaPoco_sqlite
{
    [TableName("Student")]
    [PrimaryKey("id")]
    public class Student
    {
        public int id { get; set; }
        public string name { get; set; }
        public int age { get; set; }
        public string province { get; set; }
    }
}

程序代码:

var db = new PetaPoco.Database("sqlite");
            try
            {
                db.BeginTransaction();
                Student student = new Student()
                {
                    age = 16,
                    name = "li",
                    province = "jiangsu"
                };
                //插入
                var rel = db.Insert(student);

                //伊主键值查找
                Student student2 = db.SingleOrDefault<Student>(3);
                student2.age = 37;

                //sql语句查找
                var students = db.Query<Student>("Select * FROM Student WHERE province=@0", "shandong").ToList();

                //更新
                db.Update(student2);
                db.CompleteTransaction();
            }
            catch (Exception ex)
            {

            }

结果如下:因为我手动删除了第7行,在生成的时候会跳过7,生成的Id为8

原文地址:https://www.cnblogs.com/haozhangcool/p/11446099.html