C# 在Visual Studio 2013的Windows上使用Mono.Data.Sqlite
编辑:好的,我注意到我更改了项目的输出文件夹,并将DLL放入旧的输出文件夹中。将其放入正确的输出文件夹后,Open()工作!稍后我会遇到另一个异常,但我想我可以修复它 我正在开发一个程序,该程序在Windows的.NET和Linux/Mac的Mono上运行。我正在尝试向它添加一个非常简单的SQLite记录器。我将Mono.Data.Sqlite.dll(Mono 3.10版本)添加到Visual Studio 2013中的项目引用中,并将一个sqlite3.dll()复制到调试文件夹(创建程序exe的地方) 这是我的测试代码:C# 在Visual Studio 2013的Windows上使用Mono.Data.Sqlite,c#,.net,windows,sqlite,mono,C#,.net,Windows,Sqlite,Mono,编辑:好的,我注意到我更改了项目的输出文件夹,并将DLL放入旧的输出文件夹中。将其放入正确的输出文件夹后,Open()工作!稍后我会遇到另一个异常,但我想我可以修复它 我正在开发一个程序,该程序在Windows的.NET和Linux/Mac的Mono上运行。我正在尝试向它添加一个非常简单的SQLite记录器。我将Mono.Data.Sqlite.dll(Mono 3.10版本)添加到Visual Studio 2013中的项目引用中,并将一个sqlite3.dll()复制到调试文件夹(创建程序e
using Mono.Data.Sqlite;
using System.Data;
namespace Program.Logging
{
class MyLogger
{
public void TestMethod()
{
string connectionString = "URI=file:SqliteTest.db";
IDbConnection dbcon;
dbcon = (IDbConnection)new SqliteConnection(connectionString);
dbcon.Open();
}
}
}
但是,当我尝试运行代码时,在dbcon.Open()处出现以下错误:
“System.EntryPointNotFoundException”类型的未处理异常
发生在Mono.Data.Sqlite.dll中
附加信息:Der Einstiegspunkt“sqlite3\u next\u stmt”wurde
不在DLL“sqlite3”中。(进入点)
在DLL“sqlite3”中找不到“sqlite3\u next\u stmt”。)
我做错了什么
编辑:
中发生类型为“System.ArgumentException”的未处理异常
mscorlib.dll。附加信息:URI Format werden nicht
unterstützt。(不支持URI格式。)
中发生类型为“System.ArgumentException”的未处理异常
Mono.Data.Sqlite.dll。其他信息:无效的ConnectionString
参数“version3”的格式
似乎您使用了错误的连接字符串格式。指定连接字符串格式:
[1.1 profile and the old assembly]
URI=file:/path/to/file
[2.0 profile in the new assembly]
Data Source=file:/path/to/file
既然您的目标是sqlite3,我想您应该使用2.0配置文件格式
string connectionString = "Data Source=file:SqliteTest.db";
他们还提到,在1.1概要文件中,默认情况下使用sqlite版本2,如果使用旧格式,则必须指定要使用的版本
string connectionString = "URI=file:SqliteTest.db,version=3";
我尝试了建议的连接字符串的两个版本,它们都抛出了不同的异常。很抱歉,第二个版本有一个输入错误,它应该有
version=3
。我在正确的输出文件夹中没有DLL。我之前更改了输出文件夹,但忘记了它,并将DLL放入了旧文件夹。。。
string connectionString = "Data Source=file:SqliteTest.db";
string connectionString = "URI=file:SqliteTest.db,version=3";