SQLite ADO.net连接和部署问题

时间:2015-04-28 03:08:15

标签: c# sqlite

由于实体框架似乎存在压倒性的困难,我正在转向Dapper。我有一个应用程序,它使用远程MS SQL Server数据库和一个小型本地数据库(SQLite)。针对MS SQL Server数据库的Dapper运行良好,但由于某种原因,我无法使SQLite连接正常工作。

从我理解的方式来看,Dapper只需要一个ADO连接。我安装了一个NuGet包“sqlite-net”,并使用以下代码创建连接:

SQLiteConnection con = new SQLiteConnection(“data source=C:\Data\OneDrive\Data\TestDB.sqlite”);

SQLiteConnection con = new SQLiteConnection(“data source=C:\Data\OneDrive\Data\TestDB.sqlite; Version=3”);

这些都不起作用,并且它们抛出异常“无法打开数据库文件”。文件SQLite.cs(来自NuGet包)引发了错误。

由于我过去的部署问题,我犹豫是否从System.Data.sqlite.org安装下载的文件。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

查看nuget包,特别是SQLite.cs文件:

https://github.com/praeclarum/sqlite-net/blob/master/src/SQLite.cs

我看到以下构造函数定义(第180行):

public SQLiteConnection (string databasePath, bool storeDateTimeAsTicks = true)
            : this (databasePath, SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create, storeDateTimeAsTicks)
        {
        }

这表明第一个参数只是路径,应该像:

一样调用
SQLiteConnection con = new SQLiteConnection(@"C:\Data\OneDrive\Data\TestDB.sqlite”);

@符号将\字符转义为字符代码。这两个问题看起来像你遇到的问题,我会试一试,看看它是否有效。