如何从流中读取Access文件(.accdb)?

我问了两个类似的问题:

  • 使用OLEDB将AccessFile从Stream读取到DataSet

  • 通过OpenXML SDK读取Microsoft Access文件(.accdb)

我的所有尝试都是从流中读取Access文件(.accdb)。 我曾尝试使用OLEDB和OpenXML SDK,但似乎没有人能够访问流。

那么,有人知道吗? 或者是否有任何其他解决方案从流中读取Access文件?

在引擎盖下,Access数据库严重依赖文件使用。 与内存数据库(如SQLLite)不同,Access Db需要一个文件。 因此,您必须使用OLEDB,OPENXML或对象模型处理该文件。

由于.Net 4. Streams有一个CopyTo方法,您可以使用它将流转换为临时accdb文件。

string tempFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\temp.accdb"; using (var fileStream = File.Create(tempFilePath) { accDbStream.InputStream.CopyTo(fileStream); }