12

我最近将我的 SQL Server 数据库转换为 SQLite DB。但是当我尝试使用.Open()它打开我的 SQLite 时,我会抛出这个错误:

Data Source cannot be empty.  Use :memory: to open an in-memory database

编辑:添加连接字符串:

ConnectionString = @"Data Source=D:\XXX.db;Version=3";
connection = new SQLiteConnection(connectionString);
connection.Open();

为什么我会得到这个?我将相同的 SQL Server 数据库转换为 SQL CE 和 mySQL,但没有收到这些错误。

4

4 回答 4

12

您的数据源后面有一个空格:Data Source= D:\XXX.db. 此外,在您的复制/粘贴中,连接字符串没有结束引号。这是一个适用于测试工具的连接字符串:

@"Data Source=C:\Temp\Test.db3;Pooling=true;FailIfMissing=false;Version=3"
于 2011-10-10T17:54:56.493 回答
2

最近,当我实际尝试使用 SQLite 的内存版本时,我遇到了同样的错误。

我正在按如下方式设置连接:

var connection = new SQLiteConnection("Filename=:memory:");
connection.Open();

并得到错误

数据源不能为空。使用 :memory: 打开内存

然后我将其更改为这段代码,注意“SQL”部分不再大写:

var connection = new SqliteConnection("Filename=:memory:");
connection.Open();

现在它可以工作了。

工作的非大写版本来自 Microsoft.Data.Sqlite.SqliteConnection 命名空间,其中 SQLite 版本来自 System.Data.SQLite.SQLiteConnection(我引用了 1.0.113.6 版本)。

于 2020-11-28T17:42:07.973 回答
1

您没有提供数据源名称,也就是 sqlite 文件所在的位置。

于 2010-10-28T04:20:58.597 回答
0

因为您的数据源是空的。将数据源参数添加到您的连接字符串。在打开 Sqlite 数据库之前。

于 2010-10-28T04:20:29.847 回答