With System.Data.SQLite how do you specify a database file in the connect string using a relative path

前端 未结 3 627
醉梦人生
醉梦人生 2020-12-10 04:54

Wanting to deploy my project on different servers I would prefer to be able to specify a connect string using a relative path. I can\'t seem to get that to work and want to

相关标签:
3条回答
  • 2020-12-10 05:07

    A suggestion

    You could build the absolute path in the app and pass that in the connection string.

    So, if you know that the database file is in the database subfolder of the application folder, you could do something like this (C#):

        string relativePath = @"database\myfile.s3db";
        string currentPath;
        string absolutePath;
        string connectionString;
    
        currentPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
        absolutePath = System.IO.Path.Combine(currentPath,relativePath);
    
        connectionString = string.Format("DataSource={0}", absolutePath);
    
        SQLiteConnection cnn = new SQLiteConnection(connectionString);
    

    (Someone can probably correct me on how to get the current path).

    0 讨论(0)
  • 2020-12-10 05:14

    Like this:

    String currentPath = System.IO.Path.GetDirectoryName( Application.ExecutablePath );

    0 讨论(0)
  • 2020-12-10 05:15

    How about this?

    "Data Source=|DataDirectory|mydb.db;..."
    

    I believe |DataDirectory| point to the directory where your app is located. I use NHibernate and it works with the following:

    <add key="hibernate.connection.connection_string"
           value="Data Source=|DataDirectory|mydb.db;Version=3;Compress=False;synchronous=OFF;" >
    
    0 讨论(0)
提交回复
热议问题