本来是学习在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. android技巧:EditText输入错误时该怎样提示用户

    验证用户输入内容(EditText)应该及时准确的告诉用户,那么在Android系统中提示用户通常有以下做法: 1) 使用Toast提示 1 Toast.makeText(this, "邮箱 ...

  2. python27+django创建app

    python manage.py startapp polls创建一个叫polls的app 编辑文件 polls/models.py : 1 from django.db import models ...

  3. Linux 下C++编写

    今天搞了一天Linux下C++编程,还没有什么成效.好烦躁好心焦,想砸电脑的冲动.抽根烟理下思路一定要把它拿下!! ===搞了两天,真是搞到生无可恋,试了共享文件, 试了网络配置,各种博客就是各种行不 ...

  4. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)

    C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...

  5. 有趣的库:pipe(类似linux | 管道)库

    pipe并不是Python内置的库,如果你安装了easy_install,直接可以安装它,否则你需要自己下载它:http://pypi.python.org/pypi/pipe 之所以要介绍这个库,是 ...

  6. HDU2648:Shopping(DKBR_hash)

    题目链接 题意: 给出n个字符串,接下来m天,每天每个字符串要增加对应的值,询问“memory”每天的排名 分析: 用hash表hash出每个字符串对应得值,然后放入二维数组(防止地址冲突),m天,输 ...

  7. permission denied部署django 遇到没有python_egg_cache的问题解决

    检查/etc/httpd/logs/error_log,看是否有如下错误: [Errno 13] Permission denied: '/var/www/.python-eggs' 这时候需要编辑“ ...

  8. Matlab 图像画在坐标轴下

    >> x=linspace(,*pi,); >> y=sin(x); >> figure;plot(x,y,'r-') >> set(gca,'xaxi ...

  9. cocos2d-x中有一个JniHelper类详细使用

    主体思路 通过JNI获取java虚拟机,再获取当前程序的JNI环境,通过JNI环境获取需要调用的java类信息,再获取需要调用的java类中的函数信息.再通过JNI环境调用,使用类信息.函数信息,调用 ...

  10. <转载>内存管理内幕-动态分配的选择、折衷和实现 对malloc内存分配有个简单的描述,对内存管理有个大致的说明

    这篇文章看后感觉不错,和我在glibc下的hurdmalloc.c文件里关于malloc的实现基本意思相同,同时,这篇文章还介绍了一些内存管理方面的知识,值得推荐. 原文链接地址为:http://ww ...