我试图做一个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的一侧还不错,但还是相当新鲜的单声道/ 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配置文件,需要代替URI数据源部分的文档想,但我得到了我希望的结果。