Salve, ho un piccolo quesito da porvi. Oramai è quasi un mesetto che spulcio il web in cerca di metodi / esempi per inserire e modificare immagini all'interno di un db access. Quello che dovrei fare è oltre che all'inserimento di immagini ex nuove, anche la modifica, passo a spegarmi meglio:
Inserisco la scheda prodotti nella tabella X dove all'interno, ci sono sia dati string che un campo immagine (oggetto). E fino a quà, tutto ok, usando questo metodo che allego:
Imports System.Data.OleDb
Imports System.IO
Public Class Form1
Private Sub btnImmagine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImmagine.Click
Dim dlgImmagine As New OpenFileDialog()
dlgImmagine.Title = "Seleziona un immagine da importare"
dlgImmagine.Multiselect = False
dlgImmagine.Filter = "Formato JPEG(*.jpg)|*.jpg|Formato GIF (*.gif)|*.gif"
dlgImmagine.FilterIndex = 2
dlgImmagine.FileName = ""
dlgImmagine.ShowDialog()
txtimmagine.Text = dlgImmagine.FileName
End Sub
Private Sub btnSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalva.Click
If txtimmagine.Text Is String.Empty Then
Exit Sub
End If
'Creo lo stream dati byte, della immagine
Dim fs As FileStream = New FileStream(txtimmagine.Text, FileMode.OpenOrCreate, FileAccess.Read)
Dim ImgData(fs.Length) As Byte
fs.Read(ImgData, 0, System.Convert.ToInt32(fs.Length))
fs.Close()
'Mi connetto al db
Dim sql As String = "SELECT * FROM dati"
Dim condati As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\dbimmagine.mdb")
Try
If condati.State <> ConnectionState.Open Then
condati.Open()
End If
'oggetti per il salvataggio dei dati
Dim adapterDati As OleDbDataAdapter = New OleDbDataAdapter(sql, condati)
Dim cmdBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(adapterDati)
Dim dtsDati As New DataSet()
adapterDati.MissingSchemaAction = MissingSchemaAction.AddWithKey
'Carico il dataset
adapterDati.Fill(dtsDati, "Dati")
'Creo un datarow che mi rappresenta la nuova riga
Dim dtrRiga As DataRow = dtsDati.Tables("Dati").NewRow()
dtrRiga("immagine") = ImgData
' aggiungo la riga al dataset
dtsDati.Tables("Dati").Rows.Add(dtrRiga)
'Salvo i dati modificati
adapterDati.Update(dtsDati, "Dati")
MessageBox.Show("Immagine salvata")
Catch ex As Exception
MessageBox.Show("Errore: " & ex.Message)
Finally
'Chiudo la connessione
If Not condati Is Nothing Then
If condati.State = ConnectionState.Open Then
condati.Close()
End If
condati.Dispose()
End If
End Try
End Sub
-----------------------------------------------------------------------
Il mio problema è la modifica della immagine associata, visto che cn questo detodo inserisco un nuovo record.
Potete aiutarmi?
Grazie mille in anticipo