假设我有一个Windows窗体应用程序,其中我键入了员工的所有详细信息,我需要将他的简历(PDF格式)附加到他的详细信息中。当我点击保存按钮时,他输入的所有细节都可以存储到表格中。
答案 0 :(得分:2)
使用OpenFileDialog允许用户浏览到要附加的PDF。存储所选PDF的文件路径。
当用户保存记录时,将用户选择的文件读入byte[]
,并将byte[]
保存到数据库字段(可能是blob字段)中。 (See here)
要重读它,请执行相反的操作。从数据库中获取byte[]
,并将其重新组合到一个文件中,将文件另存为临时PDF,然后启动一个进程加载它。 (See here)
答案 1 :(得分:0)
这是一个简单的例子,没有错误检查,证明了Michael Shimmins的好建议。
Dim ofd As New OpenFileDialog()
'Set ofd settings'
If ofd.ShowDialog() = DialogResult.Cancel Then
Return
End If
Dim pdfData As Byte() = File.ReadAllBytes(ofd.FileName)
'Save it to your database.'
但是,我建议您考虑将文件复制到文件服务器,而不是处理二进制数据和BLOB,如果可以的话。众所周知,BLOB会在某些平台上破坏数据库性能。 Here's一个参考。谷歌“blob数据库性能”更多。
以下是将文件复制到文件服务器的示例。
Dim newFileName As String = UniqueFileNameGeneratingFunction()
File.Copy(odf.FileName, newFileName)
'Save newFileName to your database as a string, and retrieve the file as needed'
'from the file server'