Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как добавить картинку в БД в существующую запись Добавлено: 03.03.11 11:13  

Автор вопроса:  ДенисЧ
Подскажите пж. как добавить картинку в БД в существующую запись. Во вновь создаваемую запись умею. Делаю так:

Dim strBLOBFilePath As String

Dim fsimgFile As New FileStream(cover, FileMode.Open, FileAccess.Read)
strBLOBFilePath = cover


If Not (fsimgFile Is Nothing) Then

'Создаем FileStream из существующего файла.
Dim fi As New FileInfo(CoverPath_RTB.Text)
 Dim fs As FileStream = fi.OpenRead()

 'Читаем bytes в массив из существующего файла.
 Dim nBytes As Integer = fi.Length
 Dim ByteArray(nBytes) As Byte
 Dim nBytesRead As Integer = fs.Read(ByteArray, 0, nBytes)

 Dim s As New MemoryStream(nBytes)
 count = 0
 While (count < nBytes)
 s.WriteByte(ByteArray(count))
 count += 1
 End While
 s.Position = 0
 End If


 command = New OleDbCommand("INSERT INTO " & DtS.Tables(0).Rows(0).Item("tbl_nm") & " (nm, dislok, dName, fName, pict)" & _
 " VALUES ('" & nm & "', '" & dislok & "', '" & dName & "', '" & fName & "', '" & dtaa & "', @BLOBData)", connection)

 If Not (fsimgFile Is Nothing) Then
 Dim bytBLOBData(fsimgFile.Length() - 1) As Byte
 fsimgFile.Read(bytBLOBData, 0, bytBLOBData.Length)
 fsimgFile.Close()
 Dim prm As New OleDbParameter("@BLOBData", OleDbType.VarBinary, _
 bytBLOBData.Length, ParameterDirection.Input, False, _
 0, 0, Nothing, DataRowVersion.Current, bytBLOBData)
 command.Parameters.Add(prm)
 End If

DtA1.InsertCommand = command
 DtS1.Tables(0).Rows.Add()

 str1 = "UPDATE " & DtS.Tables(0).Rows(0).Item("tbl_nm")
 command = New OleDbCommand(str1, connection)
 DtA1.UpdateCommand = command
 DtA1.Update(DtS1)

но если строка уже есть и часть информации уже введена то добавить картинку не умею (не удалив строку и добавив новую).

делал (пытался) так
 Dim DtV1 As New DataView
 DtV1.Table = DtS1.Tables(0)
 DtV1(0)("nm") = nm
 DtV1(0)("dislok") = dislok
 DtV1(0)("dName") = dName
 DtV1(0)("fName") = fName
 DtV1(0)("author") = author
 DtV1(0)("roles") = roles
 DtV1(0)("dta") = dtaa
 DtV1(0)("pict") = ByteArray


 End If

 If Not (fsimgFile Is Nothing) Then
 Dim bytBLOBData(fsimgFile.Length() - 1) As Byte
 fsimgFile.Read(bytBLOBData, 0, bytBLOBData.Length)
 fsimgFile.Close()
 Dim prm As New OleDbParameter("@BLOBData", OleDbType.VarBinary, _
 bytBLOBData.Length, ParameterDirection.Input, False, _
 0, 0, Nothing, DataRowVersion.Current, bytBLOBData)
 command.Parameters.Add(prm)

 str1 = "UPDATE " & DtS.Tables(0).Rows(0).Item("tbl_nm") & " SET nm='" & nm & "', dislok='" & dislok & "', dName='" & dName & "', fName='" & fName & "', pict=@BLOBData WHERE cod=" & Me.cod_TB.Text
 End If
 command = New OleDbCommand(str1, connection)
 DtA1.UpdateCommand = command
 DtA1.Update(DtS1)

чему должно ровняться "pict" не пойму

Киньте пж пример.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 ДенисЧ



Вопросов: 25
Ответов: 32
 Профиль | | #1 Добавлено: 03.03.11 11:38
Извините за беспокойство - нашел ошибку: command = New OleDbCommand(str1, connection) не там стояла

Ответить

Номер ответа: 2
Автор ответа:
 Alex



Вопросов: 7
Ответов: 73
 Профиль | | #2 Добавлено: 04.03.11 12:59
Вот и пример:

http://vbnet.su/sources/db/46.html

Ответить

Номер ответа: 3
Автор ответа:
 Alex



Вопросов: 7
Ответов: 73
 Профиль | | #3 Добавлено: 04.03.11 13:01
А также для АСПа (если нужно):

http://devels.ru/?what=art&p=191

Ответить

Номер ответа: 4
Автор ответа:
 ДенисЧ



Вопросов: 25
Ответов: 32
 Профиль | | #4 Добавлено: 05.03.11 15:42
Alex, огромное спасибо. Всё существенно компактней чем у меня. Респект и уважуха. :-)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам