簡體   English   中英

使用System.Data.SQLite,如何使用相對路徑在連接字符串中指定數據庫文件

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

想要將項目部署在不同的服務器上,我希望能夠使用相對路徑指定連接字符串。 我似乎無法使它正常工作,並且想知道是否有一些竅門...?

一條建議

您可以在應用程序中構建絕對路徑,然后在連接字符串中傳遞該絕對路徑。

因此,如果您知道數據庫文件位於應用程序文件夾的database子文件夾中,則可以執行以下操作(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);

(有人可能會在如何獲取當前路徑方面糾正我)。

這個怎么樣?

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

我相信|DataDirectory| 指向您的應用程序所在的目錄。 我使用NHibernate,它可以在以下環境下工作:

<add key="hibernate.connection.connection_string"
       value="Data Source=|DataDirectory|mydb.db;Version=3;Compress=False;synchronous=OFF;" >

像這樣:

字符串currentPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM