• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vasco16

mostrar imagem da BD

5 mensagens neste tópico

boas pessoal gostaria de saber como mostrar uma imagem que está armazenada na minha BD segundo um ID.

Private Sub frmFoto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' cria um DataSet
        ds = New DataSet

        ' cria um DataAdapter e retorna a tabela Categories
        Dim selectCommand As String = "SELECT CategoryID, CategoryName, Description FROM Categories"
        da = New OleDbDataAdapter(selectCommand, ConfigurationSettings.AppSettings("AcessoBD"))
        da.FillSchema(ds, SchemaType.Source, "Categories")
        da.Fill(ds, "Categories")

        ' vincula a tabela aos controles
        txtCodigo.DataBindings.Add("Text", ds, "Categories.CategoryID")
        txtNome.DataBindings.Add("Text", ds, "Categories.CategoryName")
        txtDescricao.DataBindings.Add("Text", ds, "Categories.Description")

        ' obtem o bm para a tabela pai
        bm = BindingContext(ds, "Categories")
        ' atualiza a imagem em resposta a cada posição do registro
        AddHandler bm.PositionChanged, AddressOf bm_PositionChanged
        ' atualiza e exibe para o primeiro registro
        bm_PositionChanged(Nothing, Nothing)

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja li, consigo implementar a imagem mas depois nao acompanha os registos..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dim selectCommand As String = "SELECT CategoryID, CategoryName, Description FROM Categories"

Penso que te falte aqui um Where, onde diga o que mostra por exemplo:

Dim selectCommand As String = "SELECT CategoryID, CategoryName, Description FROM Categories Where CategoryID= "Qualquer coisa que te diga o ID que queres mostrar"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas estou sem novidades..:cheesygrin:

tenho este código no load:

' cria um DataSet
        ds = New DataSet

        ' cria um DataAdapter e retorna a tabela Categories
        Dim selectCommand As String = "SELECT matricula, marca, modelo FROM compras"
        da = New OleDbDataAdapter(selectCommand, Stand.My.Settings.ligacaoBD)
        da.FillSchema(ds, SchemaType.Source, "compras")
        da.Fill(ds, "compras")

        ' vincula a tabela aos controles
        matriculatext.DataBindings.Add("Text", ds, "compras.matricula")
        marcacombo.DataBindings.Add("Text", ds, "compras.marca")
        modelocombo.DataBindings.Add("Text", ds, "compras.modelo")

        ' obtem o bm para a tabela pai
        bm = BindingContext(ds, "compras")
        ' atualiza a imagem em resposta a cada posição do registro
        AddHandler bm.PositionChanged, AddressOf bd1_PositionChanged
        ' atualiza e exibe para o primeiro registro
        bd1_PositionChanged(Nothing, Nothing)

e este no bindingsource:

Private Sub bd1_PositionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles bd1.PositionChanged
        ' refresca a foto exibida quando o registro atual muda
        ' obtem uma nova CategoryID usando o BindingManager
        'Dim categoryId As Integer = CInt(ds.Tables("compras").Rows(bm.Position)("Id_compra"))

        ' cria a conexao
        Dim conn As New OleDbConnection(Stand.My.Settings.ligacaoBD)
        ' cria o commando para retornar a categoria das fotos
        Dim sqlText As [string] = "SELECT foto FROM compras WHERE id_compra=1"
        Dim cmd As New OleDbCommand(sqlText, conn)

        ' retorna a foto do banco de dados
        conn.Open()
        Dim image As [byte]() = CType(cmd.ExecuteScalar(), [byte]())
        ' escreve o stream removendo a imagem do cabecalho
        Dim ms As New MemoryStream
        ms.Write(image, MSACCESSIMAGEMOFFSET, image.Length - MSACCESSIMAGEMOFFSET)
        conn.Close()

        ' carrega a imagem no picturebox
        PictureBox1.Image = System.Drawing.Image.FromStream(ms)
        ms.Close()

    End Sub

agora só me está a dar erro na linha: PictureBox1.Image = System.Drawing.Image.FromStream(ms)

diz: O parâmetro não é válido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora