как сохранить бинарный файл в базу данных - PullRequest
0 голосов
/ 11 января 2011

Регистрация: 10 дек. Сообщений: 10 caba11 - неизвестное количество на данный момент (<10) </p>

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

это мой код:

Public Sub importfiles(ByVal sFileName As String)

    Dim cnSQL As SqlConnection
    Dim cmSQL As SqlCommand
    Dim strSQL

    'Validate form values

    'Read file into a stream
    Dim fs As New FileStream(sFileName, FileMode.Open, FileAccess.Read)
    Dim myData(fs.Length) As Byte
    fs.Read(myData, 0, fs.Length)
    fs.Close()

    Try

        'Build  SQL
        strSQL = "insert into data_cesta(ID, cesta) values (@ID, @cesta)"

        cnSQL = New SqlConnection("Data Source=.;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True")
        cmSQL = New SqlCommand(strSQL, cnSQL)

    cmSQL.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)).Value = ID
    cmSQL.Parameters.Add(New SqlParameter("@cesta", SqlDbType.NText)).Value = myData
    '  cmd2.Parameters.Add("@ID", SqlDbType.Int).Value = ID
    ' cmd2.Parameters.Add("@cesta", SqlDbType.NText).Value = myData


    'Open connection and execute the command
    cnSQL.Open()
    cmSQL.ExecuteNonQuery()

    'Close and clean up objects
    cnSQL.Close()
    cmSQL.Dispose()
    cnSQL.Dispose()

    Catch ex As SqlException
    MsgBox(ex.Message, MsgBoxStyle.Critical, "SQL Error")
    Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
    End Try

End Sub

без попытки сказать "cmSQL.ExecuteNonQuery () "-" Не удалось преобразовать значение параметра из DataGridViewTextBoxColumn в Int32. "

1 Ответ

0 голосов
/ 11 января 2011

Похоже, что вы загружаете некоторые пути к файлам в DataGrid до того, как они будут обработаны в вашей базе данных.

По умолчанию ваше поле идентификатора передается процедуре как объект DataGridViewTextBoxColumn в DataGrid. Вам нужно получить текст внутри этого объекта.

Это можно сделать, обратившись к связанному объекту DataGridViewTextBoxCell в обрабатываемой строке. В объекте DataGridViewTextBoxCell есть свойство под названием «Значение», которое будет иметь нужное вам значение идентификатора.

Не видя больше кода, трудно дать вам точный код, но посмотрите на объект DataGridViewCell для некоторого полезного кода, поскольку TextBoxCell наследует от этого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...