我已成功将pdf文件保存为我的数据库(MySQL)作为longblob并使用此代码:
opf.Filter = "PDF FILES |*.pdf"
If opf.ShowDialog = Windows.Forms.DialogResult.OK Then
//Display the PDF you want to save in the PDFVIEWER
pdfview.src = opf.FileName
Dim Mystream As New FileStream(opf.FileName, FileMode.Open)
Dim filesize As Long = Mystream.Length
Dim buffer(filesize) As Byte
Mystream.Read(buffer, 0, filesize)
//Save the pdf file to the database
Dim query As String = "insert into sample(pdfnaho)values(@file)"
Dim cmd As New MySqlCommand(query, con)
con.Open()
cmd.Parameters.AddWithValue("@file", buffer)
cmd.ExecuteNonQuery()
MsgBox("SAVED!")
con.Close()
End If
然后我使用此代码进行显示但它不起作用,我不知道该怎么做:
Dim query As String = "select * from sample where id = 1"
Dim cmd As New MySqlCommand(query, con)
con.Open()
Dim dr As MySqlDataReader = cmd.ExecuteReader
While dr.Read
If dr.HasRows Then
pdfview.src = dr.GetString("pdfnaho")
End If
End While
con.Close()
如何从数据库中显示我保存的pdf文件?谢谢
答案 0 :(得分:0)
我不能将此作为评论,因为我没有足够的声誉。
您使用的是什么PDF查看器?如果它是Adobe PDF Viewer,我几乎可以肯定(从之前的另一个项目的研究中)你无法流入它。
这是我之前项目中的一个示例,我修改了它以适合您的项目,请确保编辑查询以适合您的表和列名称。
您必须运行一个只返回包含二进制文件的单元格的查询。
Dim query as String = "SELECT file_content FROM sample WHERE ID=1;"
Public Sub OpenPDF()
If File.Exists(Application.StartupPath() & "\temp.file") = True Then
pdfview.src = "blank.pdf"
My.Computer.FileSystem.DeleteFile(Application.StartupPath() & "\temp.file")
End If
Dim cmd As New MySqlCommand(query, con)
Dim Buffer As Byte()
con.open()
Buffer = cmd.ExecuteScalar
con.close()
File.WriteAllBytes(Application.StartupPath() & "\temp.file", Buffer)
pdfview.src = Application.StartupPath() & "\temp.file"
End Sub
通过这个例子,代码将检查是否存在" temp.file"并删除它,然后在pdfviewer上加载任何内容以清除正在显示的内容。
数据库连接,获取数据,将其存储在文件中,然后使用pdfviewer显示它。