[英]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.