• Dapper C# 访问SQLite


    1.以操作SQLite为例.先下载Dapper,项目引用添加Dapper.dll,然后入下

    SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
    sb.DataSource = @"D:sqlite.db";
    SQLiteConnection con = new SQLiteConnection(sb.ToString());
    con.Open();
    string sql = "select * from user";
    foreach( User u in con.Query<User>(sql))
    {
         Console.WriteLine(u.Name);
    }
    con.Close();

     参数查询:

     SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
                sb.DataSource = @"D:\sqlite.s3db";
    
                SQLiteConnection con = new SQLiteConnection(sb.ToString());
                con.Open();
    
                var data = con.Query("select * from t_session where appkey=@appkey", new
                 {
                     appkey = appKey
                 });
    
                con.Close();

     添加:

      con.Execute(" insert into t_session(appkey,appsecret,updatetime)values(@appkey,@appsecret,@updatetime)"
                        , new
                        {
                            appkey = appKey,
                            appsecret = appSecret,
                            updatetime = DateTime.Now
                        });

    更新:

    //更新
    con.Execute("update t_session set appsecret=@appsecret where appKey=@appKey ",
                        new
                        {
                            appKey = appKey,
                            appsecret = appSecret
                        });

    今天学习用Sqlite结果总出错:no such table: MyFriendInfo

    翻译一下就是:没有找到MyFriendInfo表。

    怎么会这样呢?在数据库里面明明有表的。

    调试和查看原文件各级目录发现:

    当Sqlite找不到相关的表的时候会自动创建。这下可明白了。问题出在路径上。

    我在App.Config文件中是这样写的

    Xml代码  收藏代码
    1. <appSettings>  
    2.         <add key="SqlConfiguration" value="Data Source= |DataDirectory|MyFriendList.sqlite; Integrated Security='True'"/>  
    3. </appSettings>  

    |DataDirectory| 的作用是定位到App_Data文件夹下面,源程序则是生成在inDebug目录下面,结果在Debug目录下面发现了Sqlite自动生成的数据库。这下明白了。不过在做WINFORM程序的时候如果还要安装,那数据库路径在Config文件中是不能写死的。放在Debug目录下面应该是一个解决办法吧。

    如果是WEB应用程序这个问题就好解决了。

  • 相关阅读:
    模拟+bfs——cf1344D
    【留坑】模拟+极角排序+预处理——ICPC PNWRC 2019 H
    【好题】思维+几何+离散化——ICPC PNWRC 2019 G
    【难】组合数学+dp——ICPC PNWRC 2019
    【好题】导数+统计贡献+扫描—— icpc PNWRC 2019
    【模板】二分图匹配+构造+最大独立集——icpc PNWRC 2019
    [Scoi2014]方伯伯的OJ(动态开点splay)
    [ZJOI2006]书架(二分+树状数组)
    [TJOI2017]不勤劳的图书管理员(分块+树状数组)
    [APIO2016]Gap(交互)
  • 原文地址:https://www.cnblogs.com/bqh10086/p/4333359.html
Copyright © 2020-2023  润新知