首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataDirectory设置项目

DataDirectory设置项目
EN

Stack Overflow用户
提问于 2012-08-24 01:58:30
回答 1查看 830关注 0票数 1

我正在做一个C# winforms,sqlite应用程序的安装项目。连接字符串似乎有点问题。用户将把他想要使用的数据库放在一个位置(v会告诉他)。在本例中,它是"C:\\Program Files(x86)\\DefaultCompany\\RSetup";,用户可以使用自己的DB副本。

因此,我在Program.cs Main中将数据目录设置为此路径,这是我能想到的唯一方法。如果有更好的方法,那就是grt!

代码语言:javascript
复制
 App.config 

        <add name="ConnString" connectionString="|DataDirectory|\MySQlite.db;Compress=True;Version=3"
              providerName="System.Data.Sqlite" />

  Program.cs 
    Setting the datadirectory to the path of the executable. Currently hard coded the path of the executable 
      static void Main()
            {

                   AppDomain.CurrentDomain.SetData("DataDirectory","C:\\Program Files(x86)\\DefaultCompany\\RSetup");

这似乎不起作用。它不会给出任何错误,除非数据不是空的。似乎在设置项目和常规项目中都不起作用

谢谢JC

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 02:12:18

您可以询问用户数据库的位置,将该路径存储在某个位置(例如用户设置),然后您可以随时检索它。这将为用户提供更大的灵活性来放置它,如果需要的话,同一台机器上的多个用户可以拥有自己的数据库。

下面是一些伪代码。

代码语言:javascript
复制
string dbLocation = Properties.Settings.Default.DatabaseLocation;
if (string.IsNullOrWhiteSpace(dbLocation)
{
    dbLocation = AskUserForLocation();
    Properties.Settings.Default.DatabaseLocation = dbLocation;
    Properties.Settings.Default.Save();
}

AppDomain.CurrentDomain.SetData("DataDirectory",dbLocation);

使用这种方法,您还可以添加一个菜单选项,允许用户根据需要更改位置。

它还使您能够在任何位置检索值,包括创建连接的位置,您可以将路径附加到读取连接字符串和创建新连接之间的位置。

代码语言:javascript
复制
SQLiteConnection myConnection = new SQLiteConnection;();
myConnection.ConnectionString = Path.Combine(Properties.Settings.Default.DatabaseLocation, myConnectionString);
myConnection.Open();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12097494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档