VB.NET: как исправить. Заданный формат пути не поддерживается ошибка

0

Я новичок здесь, и мне нужна помощь, чтобы исправить мою проблему с кодом. Мой проект посвящен хранению PDF файлов в базе данных MySQL с использованием кода vb.net. У меня проблема с приведенным ниже кодом, чтобы вылечить это:

Ошибка:

Данный формат пути не поддерживается

и вот мои коды и мои таблицы в базе данных используют MediumBLOB в качестве типа данных

Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsimpan.Click

    'codes to save the pdf
    Dim filesize As UInt32
    Dim rawData() As Byte = IO.File.ReadAllBytes(strFilename)
    Dim fs As FileStream

    Try
        fs = New FileStream("'" & strFilename & "'", FileMode.Open, FileAccess.Read)
        filesize = fs.Length

        rawData = New Byte(filesize) {}
        fs.Read(rawData, 0, filesize)
        fs.Close()

        conn.Open()
        cmd = New MySql.Data.MySqlClient.MySqlCommand("INSERT INTO simpanambilpdf VALUES (NULL, @FileName, @FileSize, @File)", conn)
        cmd.Parameters.AddWithValue("@FileName", strFileName)
        cmd.Parameters.AddWithValue("@FileSize", filesize)
        cmd.Parameters.AddWithValue("@File", rawData)
        cmd.ExecuteNonQuery()
        MessageBox.Show("Congratulations PDF file is saved!", "HORE", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
        conn.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub 

Пожалуйста, предложите мне ответ или совет. Спасибо

  • 0
    Почему вы помещаете имя файла в одинарные кавычки при создании FileSteam и сохранении в базе данных? Заметьте, как вы этого не делаете при вызове ReadAllBytes и (я предполагаю) это работает там? Когда вы когда-нибудь видели имя файла / путь, заключенный в одинарные кавычки?
  • 0
    Почему вы вообще создаете этот FileStream ? У вас есть содержимое файла в Byte массиве, так зачем вам нужен FileStream чтобы получить длину? Даже если вы не можете получить это значение из массива Byte , класс FileInfo имеет свойство Length , которое даст вам его без повторного открытия файла.
Показать ещё 7 комментариев
Теги:
visual-studio

1 ответ

0
Лучший ответ

Я больше не могу этого терпеть, поэтому я просто хочу предоставить код:

Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsimpan.Click
    'codes to save the pdf
    Dim rawData() As Byte = IO.File.ReadAllBytes(strFilename)
    Dim filesize As UInt32 = rawData.Length

    Try    
        conn.Open()
        cmd = New MySql.Data.MySqlClient.MySqlCommand("INSERT INTO simpanambilpdf VALUES (NULL, @FileName, @FileSize, @File)", conn)
        cmd.Parameters.AddWithValue("@FileName", strFileName)
        cmd.Parameters.AddWithValue("@FileSize", filesize)
        cmd.Parameters.AddWithValue("@File", rawData)
        cmd.ExecuteNonQuery()
        MessageBox.Show("Congratulations PDF file is saved!", "HORE", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
        conn.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

Именно это я и говорил. Я не запускаю код, но, насколько я вижу, он должен делать именно то, что вы хотите. Если он не объяснит, ТОЧНО, что происходит, и мы можем обратиться к этому конкретно. Разговор о NullReferenceException снова и снова, даже не говоря о том, где он брошен, имеет мало значения.

Тем не менее, если вы получите NullReferenceException первое, что нужно сделать, это определить, какая ссылка является нулевой и работать назад, чтобы увидеть, где вы ожидали, что она будет установлена, а затем выяснить, почему она либо не была установлена, либо была очищена после этого. Что там, где приходит отладка. Если вы не знаете, как отлаживать, то есть задавать точки останова и проходить через код, тогда узнайте сейчас, начиная здесь. Кроме того, ознакомьтесь с этой NullReferenceExceptions чтобы узнать о работе с NullReferenceExceptions.

  • 0
    Огромное спасибо, хотя я все еще сталкиваюсь с ошибкой, но теперь я знаю и действительно ясно знаю о Filestream или File.ReadAllBytes о которых вы говорите, и об NullRefferenceException , где именно он находится. Рад узнать что-то новое от вас :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню