Mono无法打开sqlite数据库

我正在尝试与sqlite v3数据库进行非常基本的连接,而我正在使用monodevelop 3.0和Mono 2.10,并且无法连接到数据库。 我可以让应用程序创建数据库,但它会立即尝试连接到它。 有什么建议? 我从一个不同的数据库开始,但后来决定让我的应用程序尝试创建一个空的数据库,然后连接到它。 这仍然似乎失败了。

SqliteConnection.CreateFile("db\\DataWorksProg.s3db"); SqliteConnection conn = new SqliteConnection("Data Source=file:db\\DataWorksProg.s3db"); conn.Open(); 

这小段代码失败,并显示无法打开数据库文件的错误。

 Mono.Data.Sqlite.SqliteException: Unable to open the database file 

权限看起来不错,我在项目中有Sqlite3.dll,它似乎工作正常。 我错过了哪些明显的东西? 我在Visual Studio方面相当不错,但在Mono / Monodevelop环境中仍然相当新鲜。

什么平台?

我不相信你需要创建一个文件。 如果找不到,iirc,它将生成数据库文件。

Fwiw,在Mac上,我正在做(注意一个非常标准路径的URI ;我没有使用Data Source )…

 using System; using System.Data; using Mono.Data.Sqlite; namespace test { class MainClass { public static void Main (string[] args) { IDbConnection conTemp = null; IDbCommand cmdTemp = null; conTemp = (IDbConnection)new SqliteConnection ("URI=file:/Users/userName/mnmh.db"); conTemp.Open (); cmdTemp = conTemp.CreateCommand (); cmdTemp.CommandText = "SELECT * FROM employee"; IDataReader drTemp = cmdTemp.ExecuteReader (); while (drTemp.Read()) { Console.WriteLine (drTemp.GetString (0)); } } } } 

等等

检查显而易见的 – 你已经引用了你正在使用的所有东西,等等。

需要参考

在这里找出我的问题。 显然不是使用

 "Data Source=file:db\\DataWorksProg.s3db" 

我应该一直在使用

 "URI=file:db\\DataWorksProg.s3db" 

切换到URI,它按预期工作。 我曾经想过在阅读2.0配置文件下的文档时,需要DataSource部分而不是URI,但我得到了我正在寻找的结果。