BoffinIE Ответов: 0

Хранение и извлечение PDF-файла с помощью VB.NET и mysql DB longblob/varbinary


Всем Привет,

Я работаю над проектом для курса повышения квалификации, который я делаю в VB (прошло уже много времени с тех пор, как я прикасался к нему). Сфера применения такова VB.NET на базе информационной системы сотрудников с использованием базы данных MySQL.

Мне удалось выполнить все, кроме одного шага-сохранения файла (PDF) в БД MySQL и возможности загрузки файла. Такого я еще никогда не делал.


Это способ подключения к MySQL БД я использую повторно

Public Sub DBConnect()
        Dim DatabaseName As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\db", "4", Nothing)
        Dim server As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\db", "1", Nothing)
        Dim userName As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\db", "2", Nothing)
        Dim password As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\db", "3", Nothing)

        If Not sConnection Is Nothing Then sConnection.Close()
        sConnection.ConnectionString = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", server, userName, password, DatabaseName)
        Try
            sConnection.Open()

        Catch ex As Exception
            MsgBox(ex.Message)
            MsgBox("ERROR 1001")

        End Try

    End Sub



Вставка сведений о пользователе в БД
<pre>
Public Sub InsertUser()
        DBConnect()

        Dim sqlQuery As String = "INSERT INTO db_table (firstname, surname, age, dept) VALUES('" & fname_box.Text & "','" & sname_box.Text & "','" & age_box.Text & "','" & dept_box.Text & "')"

        Dim sqlCommand As New MySqlCommand

        With sqlCommand
            .CommandText = sqlQuery
            .Connection = sConnection
            .ExecuteNonQuery()
        End With

        LoadUsers()
       

    End Sub



мой вопрос

Я ищу любые идеи/предложения, которые могут возникнуть у вас, чтобы загрузить PDF-документ в базу данных MySQL либо как часть вышеуказанного процесса (или) как отдельный процесс.
В проекте есть требование приложить подписанную форму согласия для пользователя в формате PDF, отсюда и требование.

По существу:
1. Найдите файл
2. Выберите Файл
3. загрузить или сохранить в MySQL LONGBLOB или VARBINARY

4. Возможность загрузки PDF-файла с помощью кнопки click.

Что я уже пробовал:

Я рассмотрел несколько различных решений на youtube и других веб-сайтах, но каждый раз, когда я пытаюсь использовать одно из них, я обычно сталкиваюсь с проблемами (в основном с тем, как я вызываю соединение с БД), которые потребуют еще одного часа, чтобы ввести и объяснить :) По сути, я просто ищу совета у кого-то, кто достиг этого ранее.

Заранее спасибо.

Jochen Arndt

Не решение вашего вопроса, а предложение:

Храните PDF-файл как обычные файлы в выделенном каталоге и храните путь к файлам в базе данных.
Это распространенный метод для больших двоичных данных, которые уже присутствуют в виде файлов (изображений, PDF).

Тогда обработка путей файла будет такой же, как и для любых других "нормальных" текстовых записей.

BoffinIE

Эй Йохен,

Спасибо за твой ответ, приятель. Если бы я только мог это сделать :)
Проект предусматривает, что мы должны сохранить его в БД MySQL, но да, я полностью согласен с вами, я рассматривал возможность использования WMI для создания DIR с помощью чего-то вроде (System.IO.Directory.Create ("\\server\$user\pdf")) и олицетворять с помощью NTCurrentUser, но, увы, это было бы слишком просто :D

Я думаю, они хотят, чтобы я сильно пострадал в этом проекте - но большое вам спасибо за предложение! Оцененный

BoffinIE

Привет Ричард,

Спасибо за совет - это абсолютно безумно... (да, я технический динозавр) - имеет смысл, я пойду исправлю это и, надеюсь, получу за это дополнительные очки :)

0 Ответов