【问题标题】:DataDirectory Set up projectDataDirectory 设置项目
【发布时间】:2012-08-24 02:20:58
【问题描述】:

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

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

 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

【问题讨论】:

    标签: c# sqlite setup-project


    【解决方案1】:

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

    这是一些伪代码...

    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);
    

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

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

    SQLiteConnection myConnection = new SQLiteConnection;();
    myConnection.ConnectionString = Path.Combine(Properties.Settings.Default.DatabaseLocation, myConnectionString);
    myConnection.Open();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2010-12-11
      • 1970-01-01
      • 2011-05-07
      • 2019-01-03
      • 2018-04-19
      • 1970-01-01
      相关资源
      最近更新 更多