5
 string Path = @"c:\Database\Mydatabase.db";

     string myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Paradox 5.x;";

    // Define the database query    
    string mySelectQuery = "SELECT id,name FROM people WHERE id < 3;";

    // Create a database connection object using the connection string    
    OleDbConnection myConnection = new OleDbConnection(myConnectionString);

    // Create a database command on the connection using query    
    OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);

    // Open the connection    
    myCommand.Connection.Open();

    // Create a database reader    
    OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

错误在 myCommand.Connection.Open(); 它说:'c:\Database\Mydatabase.db' 不是有效路径。确保路径名拼写正确并且您已连接到文件所在的服务器。

我正在尝试在 C# 中读取 .db 文件。但是,我收到一个错误,我确定该文件位于那里,该错误对我没有意义。请你帮助我好吗 ?或者如何在 C# 中读取 .db(paradox) 数据库文件?

编辑: 字符串路径 = @"c:\Database\";

这种情况下的错误是“Microsoft Jet 数据库引擎找不到对象'people'。确保对象存在并且正确拼写它的名称和路径名。”

如果我这样改变它,C#如何找到要使用的数据库文件?因为,我没有在任何地方指定文件名“Mydatabase.db”

在此处输入图像描述

4

4 回答 4

2

如果应用程序看不到文件,则很可能是安全问题。而“你”可以访问该文件。应用程序不能。

这是一个网络应用程序吗?如果是这样,那么这就是问题所在。asp.net/IIS 无法看到其虚拟目录之外的内容。在这种情况下,您需要提升/修改 asp.net 用户帐户的权限才能访问该文件,或者在虚拟目录中移动数据库文件。这是 App_Data 目录的一个很好的候选者。

于 2012-06-13T18:55:23.020 回答
2

确认它是一个 SQLite 数据库,我只是将它下载到我的手机上并使用 SQLite 查看器查看它。


您需要为 SQLite 下载 ADO.NET 提供程序:

“官方”版本(来自 SQLite,而不是 MS)

http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki

旧版本

http://sqlite.phxsoftware.com/

于 2012-06-14T00:02:29.553 回答
1

请尝试使用这些连接字符串之一。

于 2012-06-13T19:54:30.273 回答
0

根据这个站点,您应该只指定文件夹名称,而不是 db 文件。

请注意,您应该只指定数据库所在的文件夹。不是数据库名称本身。

链接的MSDN 文章说,如果要更新数据,应该使用 Jet 4.0 Service Pack 5,否则它可能是只读的。在任何情况下,我都建议安装服务包。

于 2012-06-13T18:56:15.143 回答