繁体   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