2011-01-10 7 views
0

Регистрация: Dec 10 Сообщений: 10 caba11 пока не определено в этом пункте (< 10)как сохранить бинарный файл в базу данных

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

это мой код:

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».

ответ

0

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

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

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

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

+0

Я пытался эту, но все же такую ​​же ошибку .... http://www.aspsnippets.com/Articles/Save-and-Retrieve-Files-from-SQL-Server-Database-using-ASP.Net.aspx – caba11

+0

Прямо сейчас я не думаю, что ваша проблема связана с чтением двоичных данных, я думаю, что это связано с получением значения ID для ваших параметров SqlCommand, учитывая, что он не может преобразовать DataGridViewTextBoxColumn в Integer. –

Смежные вопросы