在C#中读取.db文件

时间:2012-06-13 18:51:25

标签: c# .net database paradox

 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)数据库文件?

修改 string Path = @“c:\ Database \”;

此案例的错误是“Microsoft Jet数据库引擎无法找到对象'人'。请确保该对象存在,并且您正确拼写其名称和路径名。”

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

enter image description here

4 个答案:

答案 0 :(得分:2)

如果应用程序无法查看该文件,那么这是一个安全问题。而“你”可以访问该文件。申请不能。

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

答案 1 :(得分:2)

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


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

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

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

旧版

http://sqlite.phxsoftware.com/

答案 2 :(得分:1)

尝试使用these连接字符串之一。

答案 3 :(得分:0)

According to this site,您应该只指定文件夹名称,而不是db文件。

  

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

linked MSDN article表示如果要更新数据,应使用Jet 4.0 Service Pack 5,否则它可能是只读的。无论如何,我建议安装服务包。