在Visual Studio 2017的C#项目中如何创建独立可移植的SQL数据库文件
Visual Studio 2017 C#项目创建可移植SQL数据库操作步骤
以下提供两种常用的可移植数据库实现方案,可根据业务需求选择:
方案1:SQL Server LocalDB 实现(兼容SQL Server原生语法)
- 打开目标C#项目,在解决方案资源管理器中右键项目名称,依次选择【添加】→【新建项】
- 在弹出的模板窗口中找到【基于服务的数据库】,自定义文件名称(例如
AppData.mdf)后点击【添加】,数据库文件会直接存入项目根目录 - 右键刚添加的
AppData.mdf文件,选择【属性】,找到【复制到输出目录】选项,设置为如果较新则复制,避免编译时覆盖已有数据的数据库文件 - 双击项目内的
mdf文件,会自动在VS的服务器资源管理器中挂载数据库连接,可直接在可视化界面中创建表、编辑预置数据 - 打开项目配置文件
App.config(桌面项目)或Web.config(Web项目),在<connectionStrings>节点下添加连接配置:<add name="PortableDB" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\AppData.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> - 代码中直接读取该连接字符串即可访问数据库,
|DataDirectory|默认指向程序运行目录,无需写死绝对路径 - 发布时需将
mdf和对应的日志文件ldf一并打包,运行环境仅需安装.NET Framework和10MB左右的SQL Server LocalDB运行时,无需部署完整SQL Server服务
方案2:SQLite 实现(零额外依赖,完全单文件)
如果不需要兼容SQL Server语法,想要更轻量的可移植方案可选择SQLite:
- 右键项目→【管理NuGet程序包】,搜索安装
System.Data.SQLite.Core包 - 项目内新建后缀为
.db的空文件作为SQLite数据库文件,同样设置属性为如果较新则复制到输出目录 - 连接字符串示例:
Data Source=|DataDirectory|\SQLiteData.db;Version=3;,无需安装任何额外数据库服务,拷贝程序目录即可直接运行
内容的提问来源于stack exchange,提问作者Mario LOBO
相关产品推荐
相关产品推荐

