1

如果我将 PDF 文件保存到 Access 数据库的附件字段中,是否可以从数据库中获取该附件并在 WinForm 中查看它?或者可能是 WinForm WebBrowser?

还是我最好坚持数据库中的一个字段,告诉我所述文件的文件路径,以便我可以将我的 WebBrowser 导航到那个?

4

2 回答 2

0

要从数据库中读取文件,您需要从数据库中读取字节并将它们写入新的 pdf 文件,然后将查看器指向该文件。要直接在 WinForm 上查看 pdf,您需要一个 3rd 方控件。如果您有一个可以在浏览器中查看 pdf 的插件,则 WinForm WebBrowser 将起作用。

从编码的角度来看,仅将路径存储在数据库中会减少麻烦,因为无论如何您都必须将查看器指向文件。数据库也有问题,所有附件丢失的可能性更高。另一方面,如果只存储路径,则需要确保这些路径始终可访问。

出于上述原因,我建议将它们存储在数据库之外,特别是如果这是一个更大的数据库。

于 2013-05-23T15:24:52.273 回答
0

早在 Access 2007 引入 Attachments 字段类型之前,我就一直在使用 Access,因此我有避免在数据库中嵌入图像和文档的历史。(他们倾向于使数据库显着膨胀,并且在尝试通过代码提取文件时,添加到文件中的 OLE“包装器”确实很麻烦。)

.SaveToFileAccess 2007+ 使附件字段变得相当简单,因为 DAO 已更新为支持.LoadFromFile附件。此外,附件在保存到数据库时(显然)被压缩,这应该有助于解决膨胀问题。

所以,我想说选择权完全取决于您,因为如果您想在 WinForm 中查看(或预览或打开)PDF 附件,那么您可能最终会使用Microsoft.Office.Interop.Access.Dao将附件保存为临时文件反正。因此,您用于预览/查看/打开附件的任何机制都将对文件起作用;它要么是

  • 从数据库中提取的临时文件,或

  • 您从数据库中的路径名或 URL 引用的文件系统中的持久文件。

于 2013-05-23T15:25:03.087 回答