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

bioshock

Carregar imagem Vb Access.

4 mensagens neste tópico

Boas, neste tópico:

http://wiki.portugal-a-programar.org/visual_basic_.net:inserir_imagens_sql_server

Pelo que me disseram, bastava alterar SQL para Access (OleDb)

Só que empanco em alguns parametros, e além do mais acho que não é bem isto que prentendo (Pelo que reparei no código).

 ' Define a Connection String
        Try

            ' Cria um novo FileStream para leitura da imagem
            Dim fs As New IO.FileStream("c:\image.jpg", IO.FileMode.Open, IO.FileAccess.Read)
            ' Cria um array de Bytes do tamanho do FileStream 
            Dim ImageData(fs.Length() - 1) As Byte

            ' Lê os bytes do FileStream para o array criado
            fs.Read(ImageData, 0, ImageData.Length)

            ' Fecha o FileStream ficando a imagem guardada no array
            fs.Close()


            Using connection As New OleDb.OleDbConnection(Caminho)

                ' Define o commando Transact-SQL para inserir dados
                Dim OLEDB As String = "INSERT INTO tAlunos ([name],[img]) VALUES (@name,@img);"
                Dim command As New OleDb.OleDbCommand(OLEDB, connection)
                
                ' Define os parametros para a inserção de dados, onde está o array 
                ' de bytes(imagem) a ser inserida. O tipo do campo é Image
                command.Parameters.Add("@name", SqlDbType.VarChar).Value = "jpaulino"
                command.Parameters.Add("@img", SqlDbType.Image).Value = ImageData

                connection.Open()

                ' Insere os campos no SQL
                command.ExecuteNonQuery()
            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try


Aonde tenho os problemas:

Nesta linha de código:

[code=vbnet]Dim fs As New IO.FileStream("c:\image.jpg", IO.FileMode.Open, IO.FileAccess.Read)

Pelo que eu percebo, ele está a ir buscar a imagem que está no C: e eu pretendo que ele vá busca-la aonde quiser. (Talvez entre aqui em acção o OpenFileDialog?)

command.Parameters.Add("@name", Data.OleDb.OleDbType.VarChar).Value = "jpaulino"
                command.Parameters.Add("@img", SqlDbType.Image).Value = ImageData

Nesta linha de código, presumia que fosse "OleDbType.Image" ou "Data.Ole.OleDbtype.image" mas não encontra. Alguma ajuda? Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Access guarda as imagens como objecto, e não dá através desse código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sinceramente... com a path...ficavas muito melhor servido... até pk carregar as imagens como objecto implica um aumento considerável do tamanho do ficheiro de bd

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