3

特定の .mdb ファイルを編集する C# .net を使用してアプリケーションを作成する必要があります。

これは純粋に、議論の余地がある .mdb ファイルであってはならない部門内ファイルを読み取るための部門内アプリケーションですが、私にはその点で選択の余地がありません。XMLファイルへの変更を推進していますが、それは別問題です。

ファイルは非常に有限で、それぞれ 100 レコード程度の 3 程度のテーブルです。そのため、データベース全体をアプリケーション固有のオブジェクトに読み込みたいと考えています。エラーはすべて無視され、新しいデータベース コピーによって以前のコピーが上書きされます。データベースは非常に特殊な形式であり、検証したり捨てたりするのは簡単です。

.net で mdb を実際に読み書きする方法はたくさんあるようで、混乱してしまいました。誰でも最高のものを提案できますか?

4

2 に答える 2

1

このコードで試すことができます-に基づいてOledb provider

var mdb = "c:\MyDB.mdb"; 
var myDataTable = new DataTable(); 
using(var connection = new OleDbConnection(....."))
{ 

//Here sample format of string connection
//"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" 
//+ mdb + ";Mode=Share Deny None;Extended Properties='';Jet OLEDB:System database='';Jet OLEDB:Registry Path='';Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False


connection.Open(); 
var query = "SELECT * from TABLE"; //Adjust your query

var adapter = new OleDbDataAdapter(query, connection); //This assigns the Select statement and connection of the data adapter 

OleDbCommandBuilder oleDbCommandBuilder = new OleDbCommandBuilder(adapter); //This builds the update and Delete queries for the table in the above SQL. this only works if the select is a single table. 

dadapt.Fill(MyDataTable); 

}
于 2012-09-18T12:19:41.253 に答える
0

ADO.NET で使用できる Jet Engine の ODBC ドライバーを使用することをお勧めします。

于 2012-09-18T12:14:05.653 に答える