zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
    eclipse下解决明明有jar包,却找不到的问题
    Ngnix负载均衡安装及配置
    Redis入门教程(二)
    js监听组合按键
    js清空数组的方法
    js判断浏览器是否支持webGL
    Maven入门教程(一)
    杂记
    第一天 Requests库入门
  • 原文地址:https://www.cnblogs.com/haozhangcool/p/11446099.html
Copyright © 2011-2022 走看看