簡體   English   中英

SqlLite 3 - “無法打開數據庫”

[英]SqlLite 3 - “Unable to open database”

我創建了一個SqlLite 3 db文件並放在我項目的App_Data文件夾(ASP.Net Web API)中。 我似乎無法連接到它。 異常消息含糊不清,我無法確定是什么問題。 權限? 文件未找到? 不知道。

我在web.config中創建了以下connectionString條目:

 <connectionStrings>
<add name="LiteConnection" connectionString="Data Source=~\App_Data\repository.s3db;Version=3;" />

當我嘗試Open()連接時拋出異常。 我開始懷疑IISExpress(VS2012)可能無法寫入此目錄或其他內容?

  private string _dbLitePath = ConfigurationManager.ConnectionStrings["LiteConnection"].ConnectionString;

...
      public IDbConnection GetConnection()
    {
        try
        {
            if (_connection == null)
                _connection = new SQLiteConnection(_dbLitePath);

            if (_connection.State != ConnectionState.Open)
            {
                _connection.ConnectionString = _dbLitePath;
                _connection.Open(); // kaaaaasplat!
            }
        }
        catch (SQLiteException e)
        {

        }
        return _connection;
    }

嘗試將連接字符串更改為:

 connectionString="Data Source=|DataDirectory|\repository.s3db

DataDirectory是一個替換字符串,指示數據庫的路徑。 它消除了對完整路徑進行硬編碼的需要,這導致了幾個問題,因為數據庫的完整路徑可以在不同的地方序列化。 DataDirectory還可以輕松共享項目以及部署應用程序。

參考DataDirectory的Where

暫無
暫無

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

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