#vb.net
#vb.net
Вопрос:
Я использую код для просмотра PDF-файлов в Adobe Reader tool, затем сохраняю их в базе данных sql Server, мне нужен способ отображения этих сохраненных файлов при двойном щелчке по имени файла в datagridview Я использую этот код для отображения PDF-файлов:
Private Sub btnNewItem_Click(sender As Object, e As EventArgs) Handles btnNewItem.Click
txtItemNO.Text = GetmaxID()
btnSaveItem.Enabled = True
ofd.Filter = "pdf Files|*.pdf"
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
txtpdfPath.Text = ofd.FileName
AxAcroPDF1.src = txtpdfPath.Text
End If
End Sub
и этот код для сохранения их в базе данных:
Private Sub btnSaveItem_Click(sender As Object, e As EventArgs) Handles btnSaveItem.Click
Try
cmd = New SqlCommand("insert into TBL_Attaches (AttachID, AttachName, AttachDate, Picture, CatID) values (@AttachID, @AttachName, @AttachDate, @Picture, @CatID)", con)
con.Open()
With cmd.Parameters
.AddWithValue("@AttachID", txtItemNO.Text)
.AddWithValue("@AttachName", txtItemName.Text)
.AddWithValue("@AttachDate", dtDateSave.Value)
Dim fs As New FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs)
Dim Filepdf() As Byte = br.ReadBytes(br.BaseStream.Length)
.AddWithValue("@Picture", Filepdf)
.AddWithValue("@CatID", cmbItemCat.SelectedValue)
End With
cmd.ExecuteNonQuery()
MsgBox("Done!", MsgBoxStyle.Information, "Save")
dgsittings()
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Sub
и это код, который я использовал для отображения имен файлов в datagridview:
adapter = New SqlDataAdapter("select TBL_Attaches.AttachID, TBL_Attaches.AttachName, TBL_Attaches.AttachDate, TBL_CatFailes.CatName from TBL_Attaches inner join TBL_CatFailes on TBL_Attaches.CatID = TBL_CatFailes.CatID", con)
Dim dtG As New DataTable
adapter.Fill(dtG)
dgAttached.DataSource = dtG
Я просто хочу отобразить PDF-файл при двойном щелчке по его имени в datagridview
Комментарии:
1. В чем именно ваша проблема? Извлечение двоичного значения из базы данных или отображение pdf? Как насчет того, чтобы показать нам, что вы пытались сделать в этом пространстве?
2. Я просто хочу отобразить файл pdf
3. Это сложнее, чем сохранить поток во временный файл, а затем использовать process.start(), чтобы открыть файл с помощью средства просмотра по умолчанию?
4. не могли бы вы рассказать мне, как это сделать? Я просто хочу, чтобы код отображал PDF-файл в Adobe Reader tool, когда я дважды щелкаю по его имени в datagridview
5. Какая часть? Извлечение изображения из базы данных, сохранение потока во временный файл или открытие временного файла с помощью программы просмотра по умолчанию? Три очень разные операции.