Jump to content

Recommended Posts

Posted

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
Posted

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"

Posted

boas estou sem novidades..😁

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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.