1

我创建了一个 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;
    }
4

1 回答 1

3

尝试将连接字符串更改为:

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

DataDirectory 是一个替换字符串,指示数据库的路径。它消除了对导致几个问题的完整路径进行硬编码的需要,因为数据库的完整路径可以在不同的位置进行序列化。DataDirectory 还使共享项目和部署应用程序变得容易。

参考数据目录在哪里

于 2013-05-22T18:18:21.403 回答