FILESTREAM
                    Boa tarde galera,
Bom, mesmo eu verificando linha por linha, já não sei se realmente sege isso,
eu fecho o FileStream em todas as conexões que faço no db que envolvam uma imagem, e mesmo assim, em alguns casos aparece [Ô]Erro ao acessar o arquivo, ele deve estar sendo usado por outro programa[Ô]
Cod: (segue um padrão no FileStream, todas as conexões eu fecho logo em seguida)
                
            Bom, mesmo eu verificando linha por linha, já não sei se realmente sege isso,
eu fecho o FileStream em todas as conexões que faço no db que envolvam uma imagem, e mesmo assim, em alguns casos aparece [Ô]Erro ao acessar o arquivo, ele deve estar sendo usado por outro programa[Ô]
Cod: (segue um padrão no FileStream, todas as conexões eu fecho logo em seguida)
  
        
        Try
            [ô] Dim conn As New MySqlConnection
            Dim conn As MySqlConnection
            Dim myData As New DataTable
            Dim dr As MySqlDataReader
            Dim SQL As String
            conn = New MySqlConnection
            conn.ConnectionString = [Ô]server=localhost;user id=root;password=123456;database=apau_sers[Ô]
                conn.Open()
                SQL = [Ô]SELECT idarco_apa, arco_anime, arco_genero, arco_episodeos, arco_ovas, arco_especiais, arco_filmes, 
arco_temporadas, arco_sinopse, arco_ap, arco_apganho, arco_datalancamento, arco_duracaoep, arco_produtores, arco_fimlancamento, 
arco_dialancado, arco_imageanime, arco_up, arco_emlancamento, arco_nota FROM 'apau_sers'.'arco_apa' WHERE arco_anime=[ô][Ô] & DataGridView1.CurrentRow().Cells(0).Value & [Ô][ô];[Ô]
                Try
                    Dim cmd As MySqlCommand = New MySqlCommand(SQL, conn)
                    dr = cmd.ExecuteReader(CommandBehavior.SingleRow)
                    If dr.HasRows Then
                        dr.Read()
                        point_arco.ID_M = dr.Item([Ô]idarco_apa[Ô])
                        point_arco.ANIME_M = dr.Item([Ô]arco_anime[Ô])
                        txtanime.Text = dr.Item([Ô]arco_anime[Ô])
                        point_arco.GENERO_M = dr.Item([Ô]arco_genero[Ô])
                        point_arco.EPISODEOS_M = dr.Item([Ô]arco_episodeos[Ô])
                        point_arco.OVAS_M = dr.Item([Ô]arco_ovas[Ô])
                        point_arco.ESPECIAIS_M = dr.Item([Ô]arco_especiais[Ô])
                        point_arco.FILMES_M = dr.Item([Ô]arco_filmes[Ô])
                        point_arco.TEMPORADAS_M = dr.Item([Ô]arco_temporadas[Ô])
                        point_arco.SINOPSE_M = dr.Item([Ô]arco_sinopse[Ô])
                        point_arco.AP_M = dr.Item([Ô]arco_ap[Ô])
                        point_arco.APG_M = dr.Item([Ô]arco_apganho[Ô])
                        point_arco.DATADELANÇAMENTO_M = dr.Item([Ô]arco_datalancamento[Ô])
                        point_arco.DURAÇÂOPOREP_M = dr.Item([Ô]arco_duracaoep[Ô])
                        point_arco.PRODUTORES_M = dr.Item([Ô]arco_produtores[Ô])
                        point_arco.FIMDELANÇAMENTO_M = dr.Item([Ô]arco_fimlancamento[Ô])
                        point_arco.DIALANÇADO_M = dr.Item([Ô]arco_dialancado[Ô])
                        point_arco.EMLANÇAMENTO = dr.Item([Ô]arco_emlancamento[Ô]) [ô] True / False
                        point_arco.NOTA_M = dr.Item([Ô]arco_nota[Ô])
                        If imganime.Image IsNot Nothing Then
                            imganime.Image.Dispose()
                        End If
                    Using fs As New FileStream([Ô]img.bmp[Ô], FileMode.Create)
                        Dim blobl As Byte() = DirectCast(dr.Item([Ô]arco_imageanime[Ô]), Byte())
                        fs.Write(blobl, 0, blobl.Length)
                            point_arco.IMG_M = Image.FromFile([Ô]img.bmp[Ô])
                        fs.Close()
                    End Using
                    imganime.Image = point_arco.IMG_M
                    imganime.Refresh()
                End If
                Catch ex As Exception
                    MsgBox(ex.ToString())
                Finally
                End Try
                conn.Close()
        Catch ex As MySqlException
            MsgBox(ex.ToString())
        End Try
 
                    Quando você vai trabalhar com manipulação de arquivo ou banco de dados, é sempre bom destruir o objeto na memória com o Dispose.
Para isso, você pode fazer simplesmente:
Ou ainda, usando o Using. Que faz isso automaticamente quando o objeto implementa a interface IDisposable.
Assim:
Abraços!
            Para isso, você pode fazer simplesmente:
                Dim NomeArquivoFoto As String = nomeArquivoImagem
                Dim DadosImagem() As Byte
                fs = New FileStream(NomeArquivoFoto, FileMode.Open, FileAccess.Read)
                br = New BinaryReader(fs)
                DadosImagem = br.ReadBytes(CType(fs.Length, Integer))
                br.Close()
                fs.Close()
                fs.Dispose()Ou ainda, usando o Using. Que faz isso automaticamente quando o objeto implementa a interface IDisposable.
Assim:
                Dim NomeArquivoFoto As String = nomeArquivoImagem
                Dim DadosImagem() As Byte
                Using fs = New FileStream(NomeArquivoFoto, FileMode.Open, FileAccess.Read)
                      br = New BinaryReader(fs)
                      DadosImagem = br.ReadBytes(CType(fs.Length, Integer))
                      br.Close()
                      fs.Close()
                End UsingAbraços!
                    Entre usar esse [Ô]Using[Ô] e usar o Dispose(), qual vc recomenda?
                
            
                    Isso já fica a seu critério, o que se encaixar melhor para você! Eu nesta situação uso [Ô]Using[Ô]. Mas fica seu critério!
                
            
                    Eu recomendo o Using cara.
A única diferença entre eles é em caso da aplicação gerar um erro (um Exception). Com o Using, ele vai chamar o Dispose mesmo em caso de exception. O mesmo não ocorre se você usar .Dispose().
            A única diferença entre eles é em caso da aplicação gerar um erro (um Exception). Com o Using, ele vai chamar o Dispose mesmo em caso de exception. O mesmo não ocorre se você usar .Dispose().
Citação::
Eu recomendo o Using cara.
A única diferença entre eles é em caso da aplicação gerar um erro (um Exception). Com o Using, ele vai chamar o Dispose mesmo em caso de exception. O mesmo não ocorre se você usar .Dispose().
Uso da justificativa dele a minha!
                
                    Cara, mesmo usando Dispose, quanto Using ainda aparece o mesmo erro :/
System.IO.IOException: O processo não pode acessar o arquivo [ô]C:\.....\img.bmp[ô] porque ele está sendo usado por outro processo.
            System.IO.IOException: O processo não pode acessar o arquivo [ô]C:\.....\img.bmp[ô] porque ele está sendo usado por outro processo.
                    Depois das explicações agora você entende porque disse para usar,
Using
End Using.
            Using
End Using.
                    Eu tive a ideia de, tipo olhem o codigo;
Esse codigo, vai settar os valores do anime selecionado em um modulo.
o formulario2, vai fazer o mesmo, só que quando eu seleciono um registro na grid aparece o erro, então eu mudei no formulario 2 para [Ô]igm.bmp[Ô], sim funcionou tranquilo, mas queria saber o porque deste erro, uashdiauds não posso ficar criando arquivos toda vez que for fazer uma consulta com imagem
                
              
        Try
            Dim conn As New MySqlConnection
            Dim myData As New DataTable
            Dim dr As MySqlDataReader
            Dim SQL As String
            conn = New MySqlConnection
            conn.ConnectionString = [Ô]server=localhost;user id=root;password=123456;database=apau_sers[Ô]
            conn.Open()
            SQL = [Ô]SELECT idarco_apa, arco_anime, arco_genero, arco_episodeos, arco_ovas, arco_especiais, arco_filmes, 
arco_temporadas, arco_sinopse, arco_ap, arco_apganho, arco_datalancamento, arco_duracaoep, arco_produtores, arco_fimlancamento, 
arco_dialancado, arco_imageanime, arco_up, arco_emlancamento, arco_nota FROM 'apau_sers'.'arco_apa' WHERE arco_anime=[ô][Ô] & DataGridView1.CurrentRow().Cells(0).Value & [Ô][ô];[Ô]
            Try
                Dim cmd As MySqlCommand = New MySqlCommand(SQL, conn)
                dr = cmd.ExecuteReader(CommandBehavior.SingleRow)
                If dr.HasRows Then
                    dr.Read()
                    point_arco.ID_M = dr.Item([Ô]idarco_apa[Ô])
                    point_arco.ANIME_M = dr.Item([Ô]arco_anime[Ô])
                    txtanime.Text = dr.Item([Ô]arco_anime[Ô])
                    point_arco.GENERO_M = dr.Item([Ô]arco_genero[Ô])
                    point_arco.EPISODEOS_M = dr.Item([Ô]arco_episodeos[Ô])
                    point_arco.OVAS_M = dr.Item([Ô]arco_ovas[Ô])
                    point_arco.ESPECIAIS_M = dr.Item([Ô]arco_especiais[Ô])
                    point_arco.FILMES_M = dr.Item([Ô]arco_filmes[Ô])
                    point_arco.TEMPORADAS_M = dr.Item([Ô]arco_temporadas[Ô])
                    point_arco.SINOPSE_M = dr.Item([Ô]arco_sinopse[Ô])
                    point_arco.AP_M = dr.Item([Ô]arco_ap[Ô])
                    point_arco.APG_M = dr.Item([Ô]arco_apganho[Ô])
                    point_arco.DATADELANÇAMENTO_M = dr.Item([Ô]arco_datalancamento[Ô])
                    point_arco.DURAÇÂOPOREP_M = dr.Item([Ô]arco_duracaoep[Ô])
                    point_arco.PRODUTORES_M = dr.Item([Ô]arco_produtores[Ô])
                    point_arco.FIMDELANÇAMENTO_M = dr.Item([Ô]arco_fimlancamento[Ô])
                    point_arco.DIALANÇADO_M = dr.Item([Ô]arco_dialancado[Ô])
                    point_arco.EMLANÇAMENTO = dr.Item([Ô]arco_emlancamento[Ô]) [ô] True / False
                    point_arco.NOTA_M = dr.Item([Ô]arco_nota[Ô])
                    If imganime.Image IsNot Nothing Then
                        imganime.Image.Dispose()
                    End If
                    point_arco.IMG_M = Nothing
                    Using fs As New FileStream([Ô]img.bmp[Ô], FileMode.Create)
                        Dim blobl As Byte() = DirectCast(dr.Item([Ô]arco_imageanime[Ô]), Byte())
                        fs.Write(blobl, 0, blobl.Length)
                        fs.Close()
                    End Using
                    point_arco.IMG_M = Image.FromFile([Ô]img.bmp[Ô])
                    imganime.Image = point_arco.IMG_M
                    imganime.Refresh()
                End If
            Catch ex As Exception
                MsgBox(ex.ToString())
            Finally
            End Try
            conn.Close()
        Catch ex As MySqlException
            MsgBox(ex.ToString())
        End Try
 Esse codigo, vai settar os valores do anime selecionado em um modulo.
o formulario2, vai fazer o mesmo, só que quando eu seleciono um registro na grid aparece o erro, então eu mudei no formulario 2 para [Ô]igm.bmp[Ô], sim funcionou tranquilo, mas queria saber o porque deste erro, uashdiauds não posso ficar criando arquivos toda vez que for fazer uma consulta com imagem
                    Pesquise na net e verificar
http://www.macoratti.net/vbn5_apl.htm
            http://www.macoratti.net/vbn5_apl.htm
                    Opa cara, beleza?
Então, tenta fazer assim:
Não me atentei ao fato do seu BinaryReader não ter sido destruÃdo também.
Tenta assim agora rapaz!
            Então, tenta fazer assim:
     Dim NomeArquivoFoto As String = nomeArquivoImagem
                Dim DadosImagem() As Byte
                Using fs = New FileStream(NomeArquivoFoto, FileMode.Open, FileAccess.Read)
                      Using br = New BinaryReader(fs)
                           DadosImagem = br.ReadBytes(CType(fs.Length, Integer))
                           br.Close()
                      End Using
                      fs.Close()
                End UsingNão me atentei ao fato do seu BinaryReader não ter sido destruÃdo também.
Tenta assim agora rapaz!
                        Tópico encerrado , respostas não são mais permitidas