Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

j.mendes24

inserir iagem em base de dados feita em sql

Mensagens Recomendadas

j.mendes24    0
j.mendes24

bem pessoal, eu fiz uma base de dados atraves do vb.net em sql.

dentro dessa base de dados fiz uma tabela que é a tabela_imagens.

na tabela_imagens os campos sao: cod_imagem (int), imagem_verdadeira (image), imagem_falsa (imagem), sair (bit).

na tabela nenhum campo permite ser NULL.

eu gostava de saber como e que poderia introduzir as imagens na tabela, é que nao sei como é.

eu pesquisei, e encontrei um codigo para introduzir as imagens atraves de um formulário, mas com este codigo ele nao guarda nada na base de dados.  :wallbash:

codigo:

Public Class form_inserir_imagens
    Dim openFD = New OpenFileDialog

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Define a Connection String

        Dim myConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\bd_find_the_differences.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        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 SqlClient.SqlConnection(myConnectionString)

                ' Define o commando Transact-SQL para inserir dados
                Dim SQL As String = "INSERT INTO tabela_imagens ([cod_imagem],[imagem_verdadeira],[imagem_falsa],[sair]) VALUES (@cod,@img1,@img2,@sair);"
                Dim command As New SqlClient.SqlCommand(Sql, 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("@cod", SqlDbType.Int).Value = CInt(ProxCod.Text)
                command.Parameters.Add("@img1", SqlDbType.Image).Value = ImageData
                command.Parameters.Add("@img2", SqlDbType.Image).Value = ImageData
                command.Parameters.Add("@sair", SqlDbType.Bit).Value = 0
                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
    End Sub

    Private Sub form_inserir_imagens_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim strFileName As String

        openFD.InitialDirectory = "C:\"

        openFD.Title = "Add A Display Picture"
        openFD.Filter = "JPEGS|*.jpg|GIFS|*.gif|Bitmaps|*.bmp"
        Dim DidWork As Integer = openFD.ShowDialog()

        If DidWork = DialogResult.OK Then
            strFileName = openFD.FileName
            PB1.Image = Image.FromFile(strFileName)
            openFD.Reset()
        End If

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim strFileName As String

        openFD.InitialDirectory = "C:\"

        openFD.Title = "Add A Display Picture"
        openFD.Filter = "JPEGS|*.jpg|GIFS|*.gif|Bitmaps|*.bmp"
        Dim DidWork As Integer = openFD.ShowDialog()

        If DidWork = DialogResult.OK Then
            strFileName = openFD.FileName
            PB2.Image = Image.FromFile(strFileName)
            openFD.Reset()
        End If
    End Sub
End Class

alguem podiame ajudar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
j.mendes24    0
j.mendes24

nao da erro, ele passa por todas as linhas de codigo sem nenhum erro,

mas depois quando vou verificar na base de dados, ela está totalmente fazia. :S

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Soulsick    1
Soulsick

Hum, não sei com sql server isto também acontece, mas não estarás a criar uma bd nova cada vez que compilas/corres o teu programa?

Adicionaste a bd ao projecto? Se adicionaste, vê como tens a propriedade Copy to Output.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade