RE:Como leer y escribir una imagen SQL Server 2000
Hola, prueba con esto:
Para leer:
Debes obtener el campo que contiene la imagen, así como sus tamaño, haciendo una consulta parecida del estilo "select campoImagen, datalength(campoImagen) as len from imagenes)"
Luego, necesitarás una variable tipo integer para guardar el tamaño de la imagen, donde almacenar el campo "len" que te ha devuelto la consulta anterior.
Necesitarás también un array de bytes para almacenar el campo de la imagen devuelto por la consulta. Para leerlo tienes que hacer lo siguiente:
Dim bImg() As Byte 'Donde tengas declaradas el resto de variables
ReDim bImg(aux) 'Cuando hayas rellenado la variable aux
luego, por ejemplo "bImg=ds.tables(0).rows(0).item("imagen")". Esta linea puede variar en función de los objectos de conexion a sql server que utilices, en este ejemplo utilizo el system.data.sqlClient del .Net Framework 1.1.
Finalmente necesitaras un MemoryStream para convertir la imagen a un objeto image:
Dim ms As new MemoryStream
Dim img As Image
ms.Write(bImg, 0, aux)
img = Image.FromStream(ms)
Y ya tienes la imagen de la base de datos convertida a un objeto image de vb.net.
Para Escribir:
Suponiendo que tengas la imagen en un archivo, necesitaras un objeto fileStream para leer la imagen y otro FileInfo para obtener el tamaño. Además necesitarás un array de bytes para convertir la imagen antes de pasarsela al sql server:
' Primero declaras el fileStream y cargas la imagen
Dim imgStream As new FileStream("c:ejemplo.jpg", FileMode.Open)
'Luego declaras el FileInfo que necesitaremos para obtener el tamaño de la imagen
Dim imgInfo As New FileInfo("c:ejemplo.jpg")
' Ahora cargamos la imagen en el array de bytes
Dim imgByte(convert.toInt32(imgInfo.Length)) As Byte
imgStream.Read(imgByte, 0, len)
imgStream.Close()
Finalmente, lo almacenas en el campo de la base de datos:
Dim newRow As DataRow
newRow = ds.Tables("Imagenes").NewRow
newRow.Item("imagen") = imgByte
Espero que te sirva.
Saludos.