Visual Basic - na

Life is soft - evento anual de software empresarial
   
Vista:

na

Publicado por kissell mercado (2 intervenciones) el 23/04/2010 23:42:10
le he establecido una base de datos a mi sistema con todos sus datos

y todos sus controles y me funciona perfectamente , Pero hay un campo de imagen que que igual que los demas controles debe abrirse cuando lo doy a un nuevo registro si esta conectado con la base de datos. El caso es que cuando busco una foto y se la cargo de doy a guardar no guarda la foto estando el control conectado a la base de datos

datasource = adodc1
datafield = fotografia

lo curioso que por delhi yo puse una foto y cuando en visual desplaso la base da datos aparecen las fotos en cada registro pero no puedo por visual basic insertarle las fotos a la base d edatos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:na

Publicado por Neogeo (23 intervenciones) el 24/04/2010 05:02:38
Hola para guardar una imagen a bd desde visual 6 hay que transformar la imagen a binario el siguiente codigo lo publico

Thencho a el le funciono por lo que dijo

Buenas

Ya he conseguido guardar la imagen en la BD, en un Bynary data.

Dim ruta As New FileStream("C:\Documents and Settings\itovar\My Documents\My Pictures\imagen1.jpg", FileMode.OpenOrCreate, FileAccess.Read)
Dim binario(ruta.Length) As Byte
ruta.Read(binario, 0, ruta.Length)
ruta.Close()
Dim conexion As New SqlConnection("server=ggnet;database=ggitc;uid=gg; password=ostia")
Dim consulta As New SqlDataAdapter("Select codemp,codigo,denominacion,imagen from t_articulos where codemp='9' and codigo='01-001'", conexion)
Dim MyCB As SqlCommandBuilder = New SqlCommandBuilder(consulta)
Dim ds As New DataSet()
consulta.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
conexion.Open()
consulta.Fill(ds, "Imagenes")
Dim fila As DataRow
fila = ds.Tables("Imagenes").Rows(0)
fila.Item("Imagen") = binario
consulta.Update(ds, "Imagenes")
Catch ex As Exception
MsgBox(ex.Message)
Finally
conexion.Close()
End Try

Tambien se cojer el binary data de la BD. Y me aparece la imagen.

Dim conexion As New SqlConnection("server=ggnet;database=ggitc;uid=gg; password=ostia")
Dim consulta As New SqlDataAdapter("Select imagen from t_articulos where codemp='9' and codigo='01-001'", conexion)
Dim MyCB As SqlCommandBuilder = New SqlCommandBuilder(consulta)
Dim ds As New DataSet()
Try
conexion.Open()
consulta.Fill(ds, "Imagenes")
Dim fila As DataRow
fila = ds.Tables("Imagenes").Rows(0)
Dim binario() As Byte
binario = fila.Item(0)
'Image1.ImageUrl = binario.ToString
'Dim k As Long
'k = UBound(binario)
Response.Buffer = True
Response.ContentType = "Image/JPEG"
Response.BinaryWrite(binario)
Catch ex As Exception
MsgBox(ex.Message)
Finally
conexion.Close()
End Try

Ya obtengo un bato binario, BINARI DATA, del sql, y quiero que aparezca en el control image1, que es un control imagen. Ya que con lo anterior me aparece la imagen en la toda la pantalla.
espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:na

Publicado por alfonso (64 intervenciones) el 26/04/2010 07:17:04
como controlaras el crecieminto de la base de datos si estas ingresando imagenes en ella

te recomiendo que guardes la direccion donde esta esta fotografia

si estas haciendo fichas de personas, o fichas de productos, o lo que sea
todos los registros que ingresas en la base de datos tienen una identificacion unica, lo que puedes hacer es lo siguiente

es hacer que tu sistema guarde en una carpeta que tu designes una copia de la foto con el el mismo nombre del registro unico y guardas la direccion donde se encuentra esta
ejemplo

si el poducto tiene el codigo 3356365 la foto la guardas con el mismo nombre y en el campo imagen de tu formulario haces que guarde en el campo de la db que se llama imagen solo la direccion ejemplo c:\fotos\3356365.jpg

asi cuando consultes el registo en el form le dices que cargue la imagen en el picture box segun la direccion que almaceno
ahi lo puedes hacer por la direccion o por el nombre del archivo
no metas imagenes en la base de datos que luego no te daras cuenta cuando se te torne demasiado pesada

saludos

si no sabes como hacer eso en la pagina recursos visual basic hay un ejemplo de ficha de empleados con foto
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/481-imprimir-ficha-de-cliente-con-datareport.htm

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:na

Publicado por Pedro Luis (128 intervenciones) el 26/04/2010 08:45:28
Apoyo lo dicho por Alfonso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar