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

pbreda

Enviar ficheiros em MySQL (Urgente)

16 mensagens neste tópico

Boas, estou a fazer um programa para enviar ficheiros para o meu servidor local em mysql mas não estou a conseguir enviar nem receber, uso o Mysql Connector Net 5.1.7 para isso....será que alguem me pode ajudar?

Cumprimentos.......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegues ligar-te à base de dados e ler qq coisa de uma tabela?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Consigo fazer tudo mas keria saber como é k envio uma imagem para a base de dados.....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta indicares o caminho da imagem na bases de dados

uma coisa é enviar um path para a base de dados outra coisa é enviar uma imagem (bytes),

dizes q se indicares um path ele envia o ficheiro (bytes) automaticamente para a BD?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uma coisa é enviar um path para a base de dados outra coisa é enviar uma imagem (bytes),

dizes q se indicares um path ele envia o ficheiro (bytes) automaticamente para a BD?

Não me parece normalmente o que se utilizada é um campo de bytes para guardar a imagem mas depois há que a converter para Image para a visualizar.

Precisas de uma colunas de um destes tipos http://dev.mysql.com/doc/refman/5.1/en/blob.html que permite grandes blocos de bytes.

Tens este artigo sobre isso http://www.phpriot.com/articles/images-in-mysql, é php + mysql mas a teoria é a mesma é só passar do php para vb ou outra linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu quero fazer isso em vb.net.......tenho um exemplo de codigo do manual do namespace que saquei mas regista sempre valores nulos.....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu quero fazer isso em vb.net.......tenho um exemplo de codigo do manual do namespace que saquei mas regista sempre valores nulos.....

Tudo bem mas como disse basta fazeres o equivalente em VB.NET a teoria é a mesma só tens de mudar o código para VB.NET procurar as APIs equivalentes, não é muito difícil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click        
        Dim conn As New MySqlClient.MySqlConnection
        Dim cmd As New MySqlClient.MySqlCommand
        Dim SQL As String
        Dim FileSize As UInt32
        Dim rawData() As Byte
        Dim fs As FileStream
        Dim strFileName As String

        conn.ConnectionString = "server=127.0.0.1;" _
        & "uid=root;" _
        & "pwd=;" _
        & "database=loginteste"
        Try
            fs = New FileStream("D:\Projectos\VB Projects\VB.NET\prjEFE\prjEFE\EFE Icons Projects\Ico.bmp", FileMode.Open)
            FileSize = fs.Length
            'MsgBox(FileSize)
            rawData = New Byte(FileSize) {}
            fs.Read(rawData, 0, FileSize)
            strfilename = fs.Name
            fs.Close()
            conn.Open()
            cmd.Parameters.Add("file_name", strFileName)
            cmd.Parameters.Add("file_size", FileSize)
            cmd.Parameters.Add("file", rawData)
            SQL = "INSERT INTO file VALUES(NULL, file_name, file_size, file)"
            cmd.Connection = conn
            cmd.CommandText = SQL
            
            cmd.ExecuteNonQuery()
            MessageBox.Show("File Inserted into database successfully!", _
            "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
            conn.Close()
        Catch ex As Exception
            MessageBox.Show("There was an error: " & ex.Message, "Error", _
            MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
End Sub

o código é este....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

executeNonQuery é a execução da query e o read é a leitura do ficheiro....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:eek: looool, ambas as funções retornam um int, qual o valor desse int?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

n sei......lol

Faz assim:

Dim result As Integer = cmd.ExecuteNonQuery()

MessageBox.Show(result.ToString())

E mensagens de erro não tens ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já consigo registar com sucesso.....o problema é que quando vou pra extrair a informação da base de dados o ficheiro só tem numeros........

o código é este:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim conn As New MySqlConnection
        Dim cmd As New MySqlCommand
        Dim myData As MySqlDataReader
        Dim SQL As String
        Dim rawData() As Byte
        Dim FileSize As UInt32
        Dim fs As FileStream
        Dim i As UInteger

        conn.ConnectionString = "server=127.0.0.1;" _
        & "uid=root;" _
        & "pwd=;" _
        & "database=loginteste"
        SQL = "SELECT file_name, file_size, file FROM file"
        Try
            conn.Open()
            cmd.Connection = conn
            cmd.CommandText = SQL
            myData = cmd.ExecuteReader
            If Not myData.HasRows Then Throw New Exception("There are no BLOBs to save")
            myData.Read()
            FileSize = myData.GetUInt32(myData.GetOrdinal("file_size"))
            rawData = New Byte(FileSize) {}
            myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, FileSize)
            fs = New FileStream("C:\newfile.png", FileMode.OpenOrCreate, FileAccess.Write)
            fs.Write(rawData, 0, FileSize)
            fs.Close()
            MessageBox.Show("File successfully written to disk!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
            myData.Close()
            conn.Close()
        Catch ex As Exception
            MessageBox.Show("There was an error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

o ficheiro no disco devolve isto:

6677182600000054000400002100026000102400000128600000000

0000000000214214214249250250249250250249250250249249249

2492492492482492492482492492482492492482492492482482482

4824824824724824824724824824724724724624724724624724724

6247247246247247246247247251251251021421421424023522822

4214200224214200224214200224214200224214200224214200224

2142002242142002242142002242142002242142002242142002242

1420022421420022421420022421420022421420022421420024023

5228021421421425325325325025025025025025024925025024925

0250249250250249249249249249249248249249248249249248249

2492482492492482482482472482482472482482472472472472472

4724624724724624724725125125102142142142402352282242142

0022421420022421420022421420022421420022421420022421420

0224214200224214200224214200224214200224214200224214200

2242142002242142002242142002242142002242142002402352280

2142142142532532532502512512502502502502502502502502502

4925025024925025024925025024924924924924924924824924924

8249249248249249247248248247248248247248248247248248247

2482482472472472512512510214214214240235228224214200224

2142002242142002242142002242142002242142002242142002242

1420022421420022421420022421420022421420022421420022421

4200224214200224214200224214200224214200240235228021421

4214253253253251251251250251251250251251250251251250250

2502502502502502502502492502502492502502492502502492492

4924924924924824924924824824824724824824724824824724824

8247248248251252252021421421424023522822421420022421420

0224214200224214200224214200224214200224214200224214200

2242142002242142002242142002242142002242142002242142002

2421420022421420022421420022421420024023522802142142142

5325425425125125125125125125125125125125125125025125125

0251251250250250250250250250250250249250250249250250249

2502502482492

o que é que é isto?

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