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 \";

この場合のエラーは、「MicrosoftJetデータベースエンジンがオブジェクト'people'を見つけることができませんでした。オブジェクトが存在し、その名前とパス名を正しく入力していることを確認してください。」です。

そのように変更した場合、C#はどのデータベースファイルを使用するかをどのように見つけることができますか?なので、どこにも「Mydatabase.db」というファイル名を指定していません

ここに画像の説明を入力してください

4

4 に答える 4

2

SQLiteデータベースであることを確認しました。携帯電話にダウンロードして、SQLiteビューアで表示しました。


SQLite用のADO.NETプロバイダーをダウンロードする必要があります。

「公式」バージョン(MSではなくSQLiteから)

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

古いバージョン

http://sqlite.phxsoftware.com/

于 2012-06-14T00:02:29.553 に答える
2

アプリケーションがファイルを認識できない場合は、セキュリティの問題である可能性があります。「あなた」はファイルにアクセスできます。アプリケーションはできません。

これはWebアプリケーションですか?もしそうなら、これが問題です。asp.net/IISは、仮想ディレクトリの外部を表示できません。この場合、ファイルにアクセスするにはasp.netユーザーアカウントの特権を昇格/変更するか、データベースファイルを仮想ディレクトリ内に移動する必要があります。これは、App_Dataディレクトリの適切な候補です。

于 2012-06-13T18:55:23.020 に答える
1

代わりに、これらの接続文字列の1つを試してください。

于 2012-06-13T19:54:30.273 に答える
0

このサイトによると、dbファイルではなく、フォルダ名のみを指定する必要があります。

データベースが存在するフォルダーのみを指定する必要があることに注意してください。データベース名自体ではありません。

リンクされたMSDNの記事には、データを更新する場合はJet 4.0 Service Pack 5を使用する必要があると記載されています。そうしないと、読み取り専用になる可能性があります。いずれにせよ、サービスパックをインストールすることをお勧めします。

于 2012-06-13T18:56:15.143 に答える