Visual Basic.NET - Mostrar imagen en Picturebox con access OLE

 
Vista:
Imágen de perfil de Mauricio

Mostrar imagen en Picturebox con access OLE

Publicado por Mauricio (28 intervenciones) el 07/04/2015 17:13:09
Amigos tengo un problema, estoy desarrollando una aplicacion y al consultar las imagenes desde DB access no puedo asignarla al Picturebox, el codigo de la consulta es este:

Dim cadenaConexion As String
cadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DBmant\mante.mdb"
Dim miConexion As OleDbConnection
miConexion = New OleDbConnection(cadenaConexion)

Dim EquiposTableAdapter As OleDbDataAdapter
EquiposTableAdapter = New OleDbDataAdapter

EquiposTableAdapter.SelectCommand = New OleDbCommand("SELECT * FROM equipos WHERE idplanta = '" & CbPlanta.Text & "' ", miConexion)

Dim MantencionDataSet1 As DataSet
MantencionDataSet1 = New DataSet

MantencionDataSet1.Tables.Add("equipos")

EquiposTableAdapter.Fill(MantencionDataSet1.Tables("equipos"))
CbEquipo.DataSource = MantencionDataSet1.Tables("equipos")
CbEquipo.DisplayMember = "nomEquipo"


con esto lleno el combobox y al elegir el nombre del equipo me tiene que mostrar la imagen en el picture y no me sale nada en limpio, favor ya que estoy al borde.
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
sin imagen de perfil

Mostrar imagen en Picturebox con access OLE

Publicado por Guillermo (42 intervenciones) el 07/04/2015 18:46:41
Hola Mauricio. Mira, yo lo hago así, por si te vale o quieres adaptarlo:

Primero, arriba, antes de los SUB tienes que definir lo siguiente:
1
2
Dim myRow As DataRow 'definimos una especie de array para almacenar datos 1 columna por campo
        Dim dt As New DataTable 'aqui almacenaremos la consulta para la derecha

Y después, el código, tras realizar la consulta de turno:

1
2
3
4
5
6
7
8
9
10
dp.Fill(dt) 'llenamos DT con el resultado de la consulta
        Dim itemactual = Familybox.SelectedIndex() 'obtenemos el item seleccionado del Listbox
        'seleccionamos el numero de imagen que pertenezca al numero de item seleccionado
        myRow = dt.Rows(itemactual)
        'le decimos que queremos extraer del MyData el campo "fotofam",de tipo byte
        Dim MyData As Byte() = DirectCast(myRow("fotofam"), Byte())
        'Convertimos en datos validos para campo de foto con el stream
        Dim Stream = New MemoryStream(MyData)
        'cargamos el resultado obtenido en el campo image del picture box 'cajadefotos2'
        cajadefotos2.Image = Image.FromStream(Stream)

1saludo.
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
Imágen de perfil de Mauricio

Mostrar imagen en Picturebox con access OLE

Publicado por Mauricio (28 intervenciones) el 09/04/2015 17:33:37
Gullermo,
Te agradesco, pero me asalta una duda que tipo es la variable "dp" que mensionas al principio del codigo?
solo me falta esto y estaria listo para las pruebas y te aviso.


Gracias.

Mauricio
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
sin imagen de perfil

Mostrar imagen en Picturebox con access OLE

Publicado por Guillermo (42 intervenciones) el 09/04/2015 18:22:58
Hola Mauricio!
Pues mira, DP es una variable tipo MySqladapter, y esta tiene que estar atada tanto a la cadena de conexión, como a la variable que almacena la consulta. Para que no te vuelvas loco te pongo las lineas de codigo que faltan, y te explico un poco.
Esto lo agregas antes del codigo que te di:
1
2
Dim cmd as New MySqlCommand(sqlquery, DBCon)
Dim dp As New MySqlDataAdapter(cmd)
NOTAS:
1º En la variable Sqlquery es donde antes de ese código, has almacenado la cadena de la consulta, yo la introduzco tal cual, en tu caso deberías hacerlo así:
1
Dim sqlquery = "SELECT * FROM equipos WHERE idplanta = '" & CbPlanta.Text & "' "
2º En la variable DBCon es donde antes de ése código, has almacenado los datos para la conexión a tu base de datos, que en tu caso es 'cadenaconexión', pero debes definirla al principio del formulario así:
1
Dim DBCon As New MySqlConnection

Como esto es para conexiones remotas, y tu conexión veo que es para una base de datos local, quizás te de error al definir ese tipo de variables sino tienes importada la librería de turno, que se llama MySql.Data.MySqlClient, esta libreria tienes que agregarla como primera linea del codigo, antes de cualquier otra linea y proceso, así:
1
Imports MySql.Data.MySqlClient
Y claro, para poder importarla primero debes tener instalado el Mysqlconector en tu Visual Basic. Para ello léete esto, que lo tienes muy bien explicado:
http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=565
Así ya lo tendrás preparado para cuando tengas que hacer enlaces a bases de datos remotas, simplemente tendrás que cambiar la cadena de conexión y punto.
1saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mauricio

Mostrar imagen en Picturebox con access OLE

Publicado por Mauricio (28 intervenciones) el 09/04/2015 18:39:40
Gracias querido amigo me has salvado el cuero.

por fin termine el tan mentado programita, me sirvio de mucho claro que lo modifique para usarlo con access ya que en donde correra utilizan esta seudo DB.

Mauricio
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

Mostrar imagen en Picturebox con access OLE

Publicado por Myriam (1 intervención) el 07/07/2016 22:17:07
Disculpa ¿Y como queda el codigo para access? Es que no me sale. Ya me trabe.
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

Mostrar imagen en Picturebox con access OLE

Publicado por Carlos (1 intervención) el 23/04/2017 11:35:53
Me podrías hacer el favor de indicarme como quedaría el código para access?
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