首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VB.NET中使用windows表单从MS Access打开PDF

在VB.NET中使用windows表单从MS Access打开PDF
EN

Stack Overflow用户
提问于 2014-01-30 04:07:00
回答 1查看 1.7K关注 0票数 0

我正在开发一个在vb.net和MS访问的应用程序。一开始,几个小时后,我用一些资源把代码放在一起,从数据库中打开一个pdf文件。代码起作用了。但当我从应用程序启动pdf时,它在根文件夹中创建了一个pdf文件。所以现在我把它作为二进制文件(OLEObjects)放在db和根文件夹中。我只需要它在一个地方。代码如下:

代码语言:javascript
运行
复制
    Dim strSqll As String
    Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BCInventory.accdb;Persist Security Info=False;")
    conn.Open()


    strSqll = "Select filename from pdf WHERE PR = '" & pr & "' AND Year = '" & year & "'"

    Dim sqlCmdd As New OleDbCommand(strSqll, conn)

    Dim r As OleDb.OleDbDataReader = sqlCmdd.ExecuteReader()

    If Not r.HasRows Then Exit Sub

    Do While r.Read()
        fname = r.GetString(0)
    Loop
    conn.Close()

       Try
            Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BCInventory.accdb;Persist Security Info=False;")
            con.Open()
            Dim strSql As String = "Select File from pdf WHERE PR = '" & pr & "' AND Year = '" & year & "' AND fileType='" & ftype & "'"

            Dim sqlCmd As New OleDbCommand(strSql, con)

            Dim fileData As Byte() = DirectCast(sqlCmd.ExecuteScalar(), Byte())

            Dim sTempFileName As String = Application.StartupPath & "\Purchase Orders scans" & "\" & fname

            If Not fileData Is Nothing Then
                Using fs As New FileStream(fname, FileMode.OpenOrCreate, FileAccess.Write)
                    fs.Write(fileData, 0, fileData.Length)
                    fs.Flush()
                    fs.Close()
                End Using
                ShellEx(Me.Handle, "Open", fname, "", "", 10)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
EN

回答 1

Stack Overflow用户

发布于 2014-01-30 23:36:57

代码语言:javascript
运行
复制
Dim strSqll As String
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BCInventory.accdb;Persist Security Info=False;")
conn.Open()


strSqll = "Select filename from pdf WHERE PR = '" & pr & "' AND Year = '" & year & "'"

Dim sqlCmdd As New OleDbCommand(strSqll, conn)

Dim r As OleDb.OleDbDataReader = sqlCmdd.ExecuteReader()

If Not r.HasRows Then Exit Sub

Do While r.Read()
    fname = r.GetString(0)
Loop
conn.Close()

    Try
         If Len(Trim(fname)) = 0 Then
                MessageBox.Show("There is no file attached", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information)
                txtpr.Focus()
                Exit Sub
            End If
         ShellEx(Me.Handle, "Open", fname, "", "", 10)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21441517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档