Insertar imagen a BBDD con VB.NET
Publicado por Yerson (3 intervenciones) el 07/07/2006 17:11:44
Hola a Tod@s
Necesito guardar una imagen en el campo foto de la base de datos, el campo es image, estado investigando pero no lo termino de tener claro. Haber estoy programando en ADODB.
'declaramos las variables
Private cCNN As New ADODB.Connection
Private cRSS As New ADODB.Recordset
Private cCMD As New ADODB.Command
Private sSql As String
Private Sub Conectar_click()
'Realizamos la conexion a la bbdd
cCNN.Open("UID=sa; PWD=; DATABASE=MiBBDD; SERVER=MIPC; Provider
= SQLOLEDB")
End Sub
Private Sub Guardar_Click()
'mostramos el cuadro de dialogo para seleccionar imagen
OpenFileDialog.Title = "Selecciona imagen"
OpenFileDialog.Multiselect = False
OpenFileDialog.Filter = "JPEG (*.jpg)|*.jpg|GIF (*.gif)|*.gif"
OpenFileDialog.FilterIndex = 2
OpenFileDialog.FileName = ""
OpenFileDialog.ShowDialog()
'comprobamos que halla seleccionado la imagen y lo mostramos en el picture
If (Windows.Forms.DialogResult.OK) Then
If Not String.Compare(testFile.Extension, ".GIF", True) = 0 _
And Not String.Compare(testFile.Extension, ".JPG", True) = 0 Then
MessageBox.Show("Error el archivo seleccionado no es GIF o JPG. ")
else
imgFoto.Image = Image.FromFile(OpenFileDialog.FileName)
Dim myFile As String = Path.GetFileName(OpenFileDialog.FileName)
Dim testFile As System.IO.FileInfo = New System.IO.FileInfo(myFile)
Dim myStream As FileStream = New FileStream(myFile, FileMode.Open,
FileAccess.Read)
Dim myImageBuffer(myStream.Length) As Byte
myStream.Read(myImageBuffer, 0, Convert.ToInt32(myStream.Length))
cCMD.ActiveConnection = cCNN
cCMD.CommandType = ADODB.CommandTypeEnum.adCmdText
'AQUI ME DA EL ERROR
cCMD.CommandText = "INSERT INTO PRUEBAFOTOS (foto) VALUES (" &
myImageBuffer(myStream.Length) & ")"
myStream.Close()
cCMD.Execute()
cCNN.Close()
End If
End Sub
Lo que no tengo claro es como insertar la matriz en el campo foto, bueno espero que me podais ayudar, espero cualquier comentario que me pueda servir, gracias
Necesito guardar una imagen en el campo foto de la base de datos, el campo es image, estado investigando pero no lo termino de tener claro. Haber estoy programando en ADODB.
'declaramos las variables
Private cCNN As New ADODB.Connection
Private cRSS As New ADODB.Recordset
Private cCMD As New ADODB.Command
Private sSql As String
Private Sub Conectar_click()
'Realizamos la conexion a la bbdd
cCNN.Open("UID=sa; PWD=; DATABASE=MiBBDD; SERVER=MIPC; Provider
= SQLOLEDB")
End Sub
Private Sub Guardar_Click()
'mostramos el cuadro de dialogo para seleccionar imagen
OpenFileDialog.Title = "Selecciona imagen"
OpenFileDialog.Multiselect = False
OpenFileDialog.Filter = "JPEG (*.jpg)|*.jpg|GIF (*.gif)|*.gif"
OpenFileDialog.FilterIndex = 2
OpenFileDialog.FileName = ""
OpenFileDialog.ShowDialog()
'comprobamos que halla seleccionado la imagen y lo mostramos en el picture
If (Windows.Forms.DialogResult.OK) Then
If Not String.Compare(testFile.Extension, ".GIF", True) = 0 _
And Not String.Compare(testFile.Extension, ".JPG", True) = 0 Then
MessageBox.Show("Error el archivo seleccionado no es GIF o JPG. ")
else
imgFoto.Image = Image.FromFile(OpenFileDialog.FileName)
Dim myFile As String = Path.GetFileName(OpenFileDialog.FileName)
Dim testFile As System.IO.FileInfo = New System.IO.FileInfo(myFile)
Dim myStream As FileStream = New FileStream(myFile, FileMode.Open,
FileAccess.Read)
Dim myImageBuffer(myStream.Length) As Byte
myStream.Read(myImageBuffer, 0, Convert.ToInt32(myStream.Length))
cCMD.ActiveConnection = cCNN
cCMD.CommandType = ADODB.CommandTypeEnum.adCmdText
'AQUI ME DA EL ERROR
cCMD.CommandText = "INSERT INTO PRUEBAFOTOS (foto) VALUES (" &
myImageBuffer(myStream.Length) & ")"
myStream.Close()
cCMD.Execute()
cCNN.Close()
End If
End Sub
Lo que no tengo claro es como insertar la matriz en el campo foto, bueno espero que me podais ayudar, espero cualquier comentario que me pueda servir, gracias
Valora esta pregunta


0