摘要

在winform中应用sqlite和ef,对于sqlite连接字串的设置,大多情况下是不想写死了,你不知道用户会将你的exe程序安装在什么位置,也不知道他的电脑盘符是什么,如果写死了,那么很有可能出现问题,这时候我们就像如果能动态获取到exe所在的位置,那么再跟进exe的位置,来配置sqlite.db的位置就非常完美了。

解决办法

sqlite连接字符串为我们提供了一个占位符,如下所示的连接字符串

  <connectionStrings><add name="testConnStr" connectionString="Data Source=|DataDirectory|\retail.db" providerName="System.Data.SQLite.EF6" /></connectionStrings>

其中|DataDirectory|就类似于占位符的作用,这时候,我们需要在程序启动的时候,指定|DataDirectory|的具体值就可以了,针对winform程序,程序入口就是Program的Main方法,在该方法下添加如下代码,将db所在位置定位到exe所在的目录下就可以了。

  string DataDirectory= AppDomain.CurrentDomain.BaseDirectory;AppDomain.CurrentDomain.SetData("DataDirectory", DataDirectory);

经测试,成功解决问题。

转载于:https://www.cnblogs.com/wolf-sun/p/6961588.html

EF6+Sqlite连接字符串的动态设置相关推荐

  1. [转]web.config保护连接字符串及其它设置信息

    [转]web.config保护连接字符串及其它设置信息 本文英文原版及代码下载: http://www.asp.net/learn/data-access/tutorial-73-cs.aspx Sc ...

  2. php判断版本根据版本调用不同,C#_C#自动判断Excel版本使用不同的连接字符串,用OLEDB通过设置连接字符串可 - phpStudy...

    C#自动判断Excel版本使用不同的连接字符串 用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字 ...

  3. 使用OLE DB方式连接常用数据库的连接字符串的设置

    使用OLE DB方式连接常用数据库的连接字符串的设置 SQL Server 使用 OLE DB 所设置的连接字符串: 标准连接方式 Provider=sqloledb;Data Source=data ...

  4. 如何有效地连接字符串

    在Go中, string是基本类型,这意味着它是只读的,并且对它的每次操作都将创建一个新字符串. 因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,那么最好的方法是什么? 天真的方式是: s ...

  5. connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL

    在开始介绍之前,首先来看看官方对Entity Framework的解释:Entity Framework (EF) is an object-relational mapper that enable ...

  6. SQLite连接C#笔记

    不得不吐槽,实在是太坑了.以下几点一定要注意: 要下载两个东西,都要上官网.一个是SQLite for Windows,一个是System.Data.SQLite. 下载下来的DLL里面有个test, ...

  7. WIN7远程桌面连接方法!远程控制教程!XP远程桌面连接教程!如何设置远程桌面连接?远程桌面连接设置...

    WIN7远程桌面连接方法! 首先,我们要在被连接的计算机上进行设置.使用鼠标右键单击"计算机"图标,选择"属性" 在打开的"系统"窗口点击& ...

  8. vs mysql连接字符串_vs连接数据库字符串

    VS2010连接SQLSERVER2008数据库的步骤 1.在要连接数据库的类中使用using namespace System::Data::SqlClient; 将类型引入 2.定义一个连接对象, ...

  9. vs mysql连接字符串_vs 数据库连接字符串

    VS2010连接SQLSERVER2008数据库的步骤 1.在要连接数据库的类中使用using namespace System::Data::SqlClient; 将类型引入 2.定义一个连接对象, ...

最新文章

  1. linux软中断分析,linux操作系统下的软中断问题分析_linux教程
  2. optee内存管理和页表建立
  3. ajax如何给label赋值,如何让AjaxEditableLabel显示TextField?
  4. C++一级与二级指针基础详解
  5. 「我去,这也能行!」令人惊叹的8个深度学习应用
  6. 中小型网站 seo 优化推广策略
  7. matlab画滤波器频响应,matlab如何画出“凯泽窗FIR滤波器”的幅频相频响应图
  8. 怎样获取php页面get的值,PHP循环获取GET和POST值的代码
  9. 流量少怎么办?先考虑下面四项
  10. LOAM: Lidar Odometry and Mapping in Real-time
  11. DEVC编译器快捷键大全
  12. LCD1602中文资料
  13. Google搜索 - 世界各国Google网址大全
  14. DSN格式转SCH格式
  15. 冯·诺依曼,天才中的天才
  16. 3D数据基础——向量介绍与3D向量类的实现
  17. STAR法则修改简历
  18. Android Studio 依赖Moudle
  19. 基于matlab的脑瘤mr图像处理_MRI(脑肿瘤)图像处理与分割、颅骨切除
  20. switch case之合并case

热门文章

  1. Delphi LiveBinds组件
  2. 一个简单的适用于Vue的下拉刷新,触底加载组件
  3. java基础:13.2 集合框架 - LinkedList、Queue
  4. The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid
  5. 100个常用的Linux命令
  6. 【原创】从罗胖子关于开会的议题说开去
  7. CWnd的派生类-1、CFrameWnd类
  8. ngram模型中文语料实验step by step(3)-ngram模型的光滑处理
  9. 列表与元组——Python基础语法
  10. 造成物联卡那么火爆的原因是什么