如何在winform打包时带上sqlite数据库
sqlite数据库下载及使用:
https://blog.csdn.net/Yyuanyuxin/article/details/105508886
sqlite数据库可视化工具—— DB.Browser安装说明:
https://blog.csdn.net/Yyuanyuxin/article/details/105513276
有关c#_VS2019 项目打包(不带数据库)
https://blog.csdn.net/Yyuanyuxin/article/details/105368316
目录
1.建立解决方案及打包文件:
2,创建数据库及表
3.引用dll
4.在项目中使用数据库。
5.添加数据库到打包工程中
项目需要带数据库打包的情况下,因为产品没有实施工程师负责,sqlserver等需要安装的数据库不是很好的选择,客户无法在安装软件的时候直接使用,需要下载其他的组件,这不是很友好的方式,个人能力及网上资源有限的原因,最后使用了sqlite作为数据库。也是几经波折,其实最后发现很简单。。。
说明:
完整项目文件可在此处下载:点击此处
有关如何设置打包属性,可见https://blog.csdn.net/Yyuanyuxin/article/details/105368316,本文不再重复说明,只说明带数据库部分。
1.建立解决方案及打包文件:
此部分不累述,看说明的链接。

2,创建数据库及表
详情:
https://blog.csdn.net/Yyuanyuxin/article/details/105508886
最好使用可视化工具,不然就需要自己写sql语句,在sqlite3.exe里面执行。
我使用的是可视化工具DB Brower.


3.引用dll
首先需要下载dll使用。
下载地址:
https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

上传的资源中使用的框架是.Net Framework4.6,如果你打算用此框架,就可以直接使用例子中的dll
这里一定注意要使用对应的dll,要不容易报错或者无法打包。
4.在项目中使用数据库。
个人在例子中有添加一个常用帮助类文件。此处为你的db文件所在路径及名称。我使用的AppDomain.CurrentDomain.BaseDirectory是找到启动目录的路径。在debug调试的时候是debug下。那安装程序则是在安装目录下读取,不要搞错了位置,不然找不到数据库。

例子只是简单的查询及插入数据。

启动界面如下:

5.添加数据库到打包工程中
在打包项目界面上,右击鼠标弹出菜单,选择添加文件。找到你的数据库文件(.db文件)添加,这里注意添加的位置,如果代码上的位置为启动程序的根目录,如我上面所示,则直接按下方添加,如果带有文件夹,这里要记得保持一致。


上面的这种方式不需要在安装项目的时候去加载创建table表,.db文件(数据库)带有所有数据了,操作上比较简单。但如果希望安装的时候重新创表格之类的,有另一种方式,新建一个工程,添加安装程序,然后写数据库初始化的代码。这种方式还不太掌握,就不在这里写了,有兴趣的可以网上搜索看看。
————————————————
版权声明:本文为CSDN博主「Yyuanyuxin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yyuanyuxin/article/details/105540433
如何在winform打包时带上sqlite数据库的更多相关文章
- C# winform打包(带数据库安装)<转>
使用VS自带的打包工具,制作winform安装项目 开发环境:VS2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管理系统 步骤: 1.打开开发环境VS2010, ...
- Android内部自带的SQLite数据库操作dos命令
1:什么叫做SQLite数据库 Android系统内核是Linux系统,Android系统很特殊,他自带了一个SQLite数据库,轻量型的一款嵌入式的数据库 它占用资源非常的低,在嵌入式设备中,可能只 ...
- axios配置及使用(发起请求时带上token)
1.安装 利用npm安装 npm install axios --save 2.引入即可使用 import axios from 'axios' 3.目录 4.各个文件设置: (1)env.js ex ...
- 【Win 10 应用开发】Sqlite 数据库的简单用法
如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...
- Android 开发中 SQLite 数据库的使用
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, ...
- android开发之使用SQLite数据库存储
http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...
- 在Android 开发中使用 SQLite 数据库笔记
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...
- Python解析excel文件并存入sqlite数据库
最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...
- 图解Win 10 应用开发之Sqlite 数据库的简单用法
尽管目前 UWP-RT 库中还没有自带操作Sqlite数据库的API,不过,真要使用的话也不难,因为通过 Nuget ,我们其实可以获取很多支持 Sqlite 操作的第三方组件,当然了,组件虽多,但不 ...
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
以下面xml文件为例对其解析(假设此xml就在服务器端Server项目下的servlet包下的MenuServlet文件的输出流中): <?xml version="1.0" ...
随机推荐
- 空间数据库中ST_开头的来由
1. 引言 在使用空间数据库(如,PostGIS)时,我们经常使用的空间函数(如,ST_Distance(geometry, geometry).ST_Area(geometry)等)都是以ST_开头 ...
- LeetCode-156 上下翻转二叉树
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-upside-down 题目描述 给你一个二叉树的根节点 root ,请你 ...
- JavaWeb中的Servlet
Servlet 目录 Servlet 一.互联网中的资源 二.Servlet 2.1.Servlet的作用 2.2.Servlet执行流程 2.3.Servlet生命周期 2.4.Servlet的继承 ...
- 红米note9 刷开机第一屏logo
参考:https://romprovider.com/change-boot-logo-redmi-9-prime/ 工具:https://sites.google.com/site/kadanuti ...
- Truenas core 13连接LDAP,获取AD域用户及自动分配权限---chatGPT回复,未做证实
要在TrueNAS Core 13上连接LDAP并从AD域中获取用户,请按照以下步骤操作: 在TrueNAS Core 13上登录到WebUI. 转到"网络"菜单并选择" ...
- linux 操作命令大全
mysql 授权远程访问 1.进入cd /usr/local/mysql/bin 下执行 ./mysql -uroot -pInfosec@2020 (-p后面是数据库密码) 2.use mysql ...
- list.ftl
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...
- Windows Service调试方法小结
方法1:log记录 这是一个通用的调试方法,效率比较低,但比较实用,通过查看日志,总能达到调试的目的 方法2:附加到进程 这是Windows Service程序调试的常用方法,缺点是对Windows环 ...
- php 实现CURL请求接口
$ch = curl_init (); //初始化 @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 @curl_setopt($ ...
- vue 退出登录页面跳转 浏览器localStorage中的值没有改变
vuex中的loginout方法actions:{ loginout(data:string){ return new Promise(((resolve, reject)=>{ setTime ...