c#.net读取.mdb文件

c#.net读取.mdb文件,c#,.net,database,file,ms-access,C#,.net,Database,File,Ms Access,我有必要使用C#.net编写一个应用程序来编辑特定的.mdb文件 这是一个纯粹的部门内应用程序,用于读取部门内文件,这些文件不应该是.mdb文件,但我在这方面没有选择。我正在推动改为XML文件,但那是另一回事 这些文件非常有限,有3个表,每个表有100个记录;因此,我希望将整个数据库读入特定于应用程序的对象。任何错误都将被忽略,新的数据库副本将覆盖上一个数据库副本。数据库是一种非常特殊的格式,我很容易验证或扔掉 在.net中实际读/写MDB似乎有很多方法,这让我感到困惑。有人能推荐一个最好的吗?

我有必要使用C#.net编写一个应用程序来编辑特定的.mdb文件

这是一个纯粹的部门内应用程序,用于读取部门内文件,这些文件不应该是.mdb文件,但我在这方面没有选择。我正在推动改为XML文件,但那是另一回事

这些文件非常有限,有3个表,每个表有100个记录;因此,我希望将整个数据库读入特定于应用程序的对象。任何错误都将被忽略,新的数据库副本将覆盖上一个数据库副本。数据库是一种非常特殊的格式,我很容易验证或扔掉


在.net中实际读/写MDB似乎有很多方法,这让我感到困惑。有人能推荐一个最好的吗?

我建议您使用Jet Engine的ODBC驱动程序,它可以与ADO.NET一起使用。

您可以尝试使用此代码-基于
Oledb提供程序

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); 

}

也许你可以使用Access API来完成。你想编辑什么?桌子,唱片,还是别的什么?为什么不使用标准oledb或ado.net调用?