本来是学习在VB中使用SQLite数据库和Linq to SQLite,结果先学习到了在C#中使用SQLite数据库和Linq to SQLite的方法,写出来与大家共同学习。(不知道算不算不务正业)

1、建立或打开一个C#项目,如果是新建的项目则需要先保存一下,不然无法安装Nuget包。

2、安装Nuget的Linq to SQLite包,打开Nuget包管理器控制台:

3、在PM>提示符后输入安装命令:(电脑要联网)

Install-Package linq2db.SQLite

4、安装成功后:

自动添加了依赖项:System.Data.SQLite、linq2db、ling2db.t4models(创建Linq to SQLite的T4模板)

在解决方案资源管理器中添加了几项:

5、现在就可以使用SQLite数据库了:

using System.Data.SQLite;

由于对C#代码不是太熟悉,就不写具体的连接方法了。

6、实现Linq to SQLite:

打开解决方案资源管理器中LinqTODB.Template文件夹中的CopyMe.SQLite.tt.txt文件:

显示如下:

7、模板说明的第一步、第二部都不用管,我们直接来做第三部,在Web/app.config文件中添加数据库连接:

打开解决方案的属性窗口,选择”设置“,添加一个”connectionStrings“的连接字符串,并设置值后保存:

打开Web/app.config文件,修改文件,在connectionString="Data Source=E:\Address.db3" 后添加providerName="SQLite":

整个配置文件如下:(其中E:\Address.db3应为你的SQLite数据库文件)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="WindowsFormsApplication1.Properties.Settings.connectionStrings"
connectionString="Data Source=E:\Address.db3" providerName="SQLite" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

8、回到CopyMe.SQLite.tt.txt文件窗口,修改两个位置后保存:

第一个位置是数据库文件所在的目录,本例应修改为“E:\”,第二个位置是SQLite数据库的文件名,本例应为“Address.db3"。(也可以修改NamespaceName来修改为自己的命名空间)

9、在解决方案资源管理器窗口,右击CopyMe.SQLite.tt.txt文件重命名:"Address.tt",文件名随便起,后面的.txt去掉,得到模板文件:

出现询问是否执行模板文件窗口:

确定后在解决方案资源管理器窗口多出了Linq to SQLite类:

10、现在可以在你的代码中运行Linq To SQLite了:

private void Form1_Load(object sender, EventArgs e)
{
var db=new DataModel.addressDB;
var temp=
from c in db.AddressDistricts
select c;
foreach (var c in temp)
Console.WriteLine(c.DistrictName ); }

悲剧啊,vb中什么时候能实现啊。

题后话:Nuget的Linq TO SQLite包十分的强大,不仅实现了Linq对SQLite数据库的支持,同时还实现了Linq 对Access、DB2、Firebird、Oracle等11种数据库的支持。

在C#中利用Nuget包使用SQLite数据库和Linq to SQLite的更多相关文章

  1. 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite

    上午解决了在C#中利用Nuget包使用SQLite数据库和Linq to SQLite,但是最后生成的是C#的cs类文件,对于我这熟悉VB而对C#白痴的来说怎么能行呢? 于是下午接着研究,既然生成的是 ...

  2. 利用 NUget包 EPPlus 实现数据导出到Excel(适用于MVC)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvoAAABpCAIAAADEEBBGAAAJdElEQVR4nO3cy2ob5wLA8TxKnqTrrr

  3. 在 VS 2013/2015 中禁用 nuget 包的源代码管理

    对于加入源代码管理如TFS的解决方案,当使用nuget获取包时,下载的包并没有自动从源代码管理中排除,导致包(packages文件夹)会一同上传到服务器. 若要排除nuget包的源代码管理,须在 解决 ...

  4. vs中删除nuget包

    最近发现有些解决方案都是用来nuget包,这个偶尔能跑,但是有一个爱抽风的毛病,生成解决方案的时候报错:无法连接到远程服务器,真几把蛋疼.... 就是下图的情况 网上找了下不是很容易找到处理这个问题的 ...

  5. Android Sqlite数据库相关——实现将 Sqlite 数据库复制到SD 卡

    确定 sqlite 数据库所在位置(一般在data/data/com.pagename/databases/ 下,其中 com.pagename为当前项目包名) 确定 sqlite 数据库名称,拼接到 ...

  6. python中利用logging包进行日志记录时的logging.level设置选择

    之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...

  7. 利用 NUget包 EPPlus 实现数据导出到Excel(适用于DTcms)

    首先安装EPPlus 包

  8. nodejs中利用expresss脚手架和bootstrap,数据库mongodb搭建的留言板案例

    ## 1. 先打开编辑器,创建一个项目 ## 2. 再打开cmd命令提示符下载express脚手架 express   项目名   --view=ejs 或express   -e    项目名 ## ...

  9. 使用 NuGet 包管理器在 Visual Studio 中安装和管理包

    https://docs.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-visual-studio 通过 Window ...

随机推荐

  1. delphi7如何实现 科学计数的转换。 比如我输入2,触发之后会转换成2.000000E+00.求赐教

    uses SysUtils; function StrToExp(s: string): string;var f: Extended;begin f := StrToFloat(s); Result ...

  2. a different object with the same identifier value was already associated with **(ssh异常转)

      Hibernate:a different object with the same identifier value was already associated with ...异常解决 今天 ...

  3. FreeMarker笔记 第三章 模板

    ,先来一打小白兔: 3.1 总体结构 用程序语言编写的程序就是模板,模板也被成为FTL(代表FreeMarker模板语言). 模板是由如下部分混合而成的: Text文本:文本会照着原样来输出: Int ...

  4. 任务(Tasks)

    在Eclipse中用TODO标签管理任务,利用这个功能可以方便地将项目中一些需要处理的任务记录下来.我们可以通过在java注释里添加任务标签来标记一个任务,任务可以通过Tasks(任务)视图来察看. ...

  5. jQuery文档加载完毕的几种写法

    js中文档加载完毕.一般在body加一个onload事件或者window.onload = function () {} jQuery中有好多写法,平时也不注意,别人一问,还真觉得头大. 下面是我整理 ...

  6. 20+非常棒的Photoshop卡通设计教程

    现在把一个人的脸变成卡通图案再用它来当头像这种现象使非常常见的,同样的卡通插图可以用于多种渠道的设计.网上有很多公司都会创立一种吉祥物并把它应用到市场营销中.因为有了类似于photoshop这样强大的 ...

  7. PHPCMS V9实现硬件地址MAC绑定访问技术实现

    目的:会员登录需要 用户名.密码.身份识别码(新增字段) 效果:  解决方法: 目前数据库中macaddress字段已经添加,修改了phpcms\modules\member\index.php 63 ...

  8. WS之cxf的权限拦截器应用

    一.服务器端: 1.权限判断: package cn.tdtk.ws.interceptor; import java.util.List; import org.apache.cxf.binding ...

  9. PHP代码格式化批量脚本

    @echo off echo please input phpCB url: set /p input= cd /d "E:\tools\phpCB\" phpCB --space ...

  10. 省时的浏览器同步测试工具 browsersync NodeJS

    http://www.browsersync.cn/ 省时的浏览器同步测试工具 Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面 ...