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文件中是这样写的

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

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

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

Dapper C# 访问SQLite的更多相关文章

  1. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1   源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...

  2. 应用EF访问SQLite数据

    创建项目,应用EF访问SQLite 1.创建项目 项目结构初始结构如下图所示,Netage.Data.SQLite 类库项目用于定义访问数据的接口和方法,Netage.SQLiteTest.UI 控制 ...

  3. 【Android】13.4 使用SQLite.NET.Async-PCL访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 这一节演示如何利用以异步方式(async.await)访问SQLite数据库. 二.示例4运行截图 下面左图为初始 ...

  4. 【Android】13.2 使用自定义的CursorAdapter访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 SQliteDemo1的例子演示了SimpleCursorAdapter的用法,本节我们将使用用途更广的自定义的游 ...

  5. 【Android】13.1 用Android自带的API访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 这一节我们先来看看如何直接用Android自带的API创建和访问SQLite数据库. 1.创建SQLite数据库 ...

  6. 【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们 ...

  7. 并发访问sqlite数据库出现databse is locked的错误的一个解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在并发访问sqlite数据库会出现这样一个错误:databseis locked,这是sqlite数据库对并发支持不太 ...

  8. 【C#】使用EF访问Sqlite数据库

    原文:[C#]使用EF访问Sqlite数据库 1. 先上Nuget下载对应的包 如图,搜索System.Data.SQLite下载安装即可,下载完之后带上依赖一共有这么几个: EntityFramew ...

  9. 以EntifyFramework DBFirst方式访问SQLite数据库

    前面一直在找EF Code First方式来访问SQLite数据库,后面得出的结论是SQLite不支持 Code First, 虽然有非官方的库SQLite.CodeFirst可以使用,但一直没搞成功 ...

随机推荐

  1. javascript中的字典

    1.概念 字典是一种以键值对的形式存储的数据结构,就系那个电话本中的名字和电话号码一样.要找到一个电话首先要找到名字,再根据名字找到电话号码.这里的键就是指用来查找的东西,值就是查找得到的结果. Ja ...

  2. mac 画图

    1.1.XMind 基础功能免费试用 1.2.OmniGraflle 可以跳转之类的,比较方便的,类似于可以制作原型图 Omnigraffle Pro 6 Name: mojadoSerial: JY ...

  3. UVa 270 & POJ 1118 - Lining Up

    题目大意:给一些点,找出一条直线使尽可能多的点在这条直线上,求这条直线上点的个数. 以每一个点为原点进行枚举,求其它点的斜率,斜率相同则说明在一条直线上.对斜率排序,找出斜率连续相等的最大长度. #i ...

  4. JAVA中用于处理字符串的“三兄弟”

    JAVA中用于处理字符串常用的有三个类:java.lang.String.java.lang.StringBuffer.java.lang.StringBuilder,这三者的共同之处都是final类 ...

  5. 笔记整理——linux程序设计

    数据库 (2013/2/27 16:07:11) 线程 (2013/2/27 15:47:51)   信号 (2013/2/27 15:31:28)         消息队列.共享内存 (2013/2 ...

  6. input框的默认bug解决办法

    input框的默认bug是在没干掉边框的情况下是不能设置背景颜色的,否则边框会变成内边框(黑色)效果,很难看. 解决办法是: none掉input框的边框:border:none; 再设置其背景色为任 ...

  7. 导航栏项目滑过时子菜单显示/隐藏jquery代码

    ;(function(window){    $('.menuitem').hover(function(){        $('>a',this).css('background-color ...

  8. 浅谈Log4j

    1 什么是Log4j Log4j 是Apache为Java提供的日志管理工具.为了你快速理解Log4j的作用,我们用下面的代码说明Log4j的作用.我们为了调试程序,总是需要在程序使用System.o ...

  9. OGG数据仓库以及单向复制(二)

    Configure Extract(提取)      Process in Source system 配置capture(捕获)参数 Edit extract process parameter G ...

  10. hadoop学习笔记--集群搭建

    注:大家常说的ssh其实就是一个免密码访问的东西,为了简化操作的,不用每次访问其他节点重新输入密码.但是要想配置如下: .在每台机器上执行 ssh-keygen -t rsa,连敲三次回车键(即设置空 ...