本来是学习在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. 怎样预防Ddos攻击

    一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...

  2. Delphi Val函数

    在这里Val和iif都是你所用的数据库中的函数在delphi中Val是一个将字符串转换为数字的函数,Val(S; var V; var Code: Integer)第一个参数是要转换的字符串,第二个参 ...

  3. [Duilib] 交替背景色设置失败的原因

    用列表显示一列数据时,相邻数据常用不同背景色来达到区别的作用.但是设置了Duilib相应属性之后交替背景色效果并未出现.逐一排除之后发现是item的enable属性设置为"false&quo ...

  4. ps 图片提取线稿方法2种 转

  5. CreateProcess error=206, The filename or extension is too long"的一个解决方案

    在实际项目中我使用antrun 和 closure-compiler压缩JS项目.然后我就使用如下代码: 首先加入依赖. <dependency> <groupId>com.g ...

  6. cocos2dx 内存管理

    转载自 ocos2dx 内存管理 - 小花原创博客 - 博客频道 - CSDN.NET http://blog.csdn.net/ring0hx/article/details/7946397 coc ...

  7. 无线网WEP的安全测试及防范

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...

  8. utf8 和 UTF-8 的区别

    只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”.

  9. 完成端口iocp——在螺丝壳里做道场

    WINDOWS 2000以后的操作系统才支持IOCP.WINSOCK2.0才支持IOCP. 首先要有一个WINSOCK2.PAS的WINSOCK2.0接口调用声明单元. WINSOCK的版本号: WI ...

  10. 研究QGIS二次开发笔记(一)

    为了在QT程序中嵌入一个地图,最终选择了QGIS来干这件事.选型阶段真是呵呵.我折腾的是QGIS2.4.0. 首先,到官方网站下载安装QGIS.如果你跟我一样懒的话,可能希望下载一个已经编译好的win ...