PROGRESSBAR EM ORIENTA?ÃO A OBJETOS
Bom dia amigos programadores do VBMania
Estou com problemas para adaptar meu código preciso de ajuda dos programadores C# e VB.Net
Vamos lá
Minha aplicação esta no padrão OOP com as seguintes camadas: DTO, BLL, DAL e UI.
Então meu codigo trabalha da seguinte forma
Na camada UI: ProgressBar processando as informações juntoamente com um gif animado para exibir ao usuário que a plicação esta operando.
Ate ai Beleza:
Na classe BLL: Tenho o seguinte método. [FUNCIONANDO]
Public Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
Dim db As New EstoqueDAL
Return db.AddLote(List)
End Function
Na classe DAL: Tenho o seguinte método. [FUNCIONANDO]
Public Overloads Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
db = New AcessoDB
cmd = New OleDbCommand()
Try
If List.Count > 0 Then
cmd.CommandText = [Ô]INSERT INTO Estoque(Codigo,Custo,Descricao) VALUES(@Codigo,@Custo,@Descricao)[Ô]
cmd.Connection = db.Conectar([Ô]estoque.mdb[Ô])
For Each oEstoque As EstoqueDTO In List
cmd.Parameters.AddWithValue([Ô]@Codigo[Ô], oEstoque.Codigo.ToString.Trim)
cmd.Parameters.AddWithValue([Ô]@Custo[Ô], oEstoque.Custo)
cmd.Parameters.AddWithValue([Ô]@Descricao[Ô], oEstoque.Descricao.ToString.Trim)
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Next
Return True
Else
Return False
End If
Catch ex As Exception
Throw ex
Return False
Finally
db.Desconectar()
db = Nothing
cmd = Nothing
End Try
End Function
Vamos para a questão: Quando o método [ô]AddLote[ô] da camada DAL esta trabalhando a camada UI (Form) para de responder
dando a falsa impressão que o programa esta travando pois quando o DataGridView tem mais de 300 linhas o programa pareçe
até que está travado.
Teria como o form não travar durante o processo ou a DAL se comunicar com a BLL e atualizar o Form e o progressbar.
Ou aguam solução falta apenas isso para consolidar minha aplicação Agradeço a todos vocês programadores C# e VB.Net
O codigo pode ser em C# pois cosigo converter para VB.Net
Estou com problemas para adaptar meu código preciso de ajuda dos programadores C# e VB.Net
Vamos lá
Minha aplicação esta no padrão OOP com as seguintes camadas: DTO, BLL, DAL e UI.
Então meu codigo trabalha da seguinte forma
Na camada UI: ProgressBar processando as informações juntoamente com um gif animado para exibir ao usuário que a plicação esta operando.
Ate ai Beleza:
Na classe BLL: Tenho o seguinte método. [FUNCIONANDO]
Public Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
Dim db As New EstoqueDAL
Return db.AddLote(List)
End Function
Na classe DAL: Tenho o seguinte método. [FUNCIONANDO]
Public Overloads Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
db = New AcessoDB
cmd = New OleDbCommand()
Try
If List.Count > 0 Then
cmd.CommandText = [Ô]INSERT INTO Estoque(Codigo,Custo,Descricao) VALUES(@Codigo,@Custo,@Descricao)[Ô]
cmd.Connection = db.Conectar([Ô]estoque.mdb[Ô])
For Each oEstoque As EstoqueDTO In List
cmd.Parameters.AddWithValue([Ô]@Codigo[Ô], oEstoque.Codigo.ToString.Trim)
cmd.Parameters.AddWithValue([Ô]@Custo[Ô], oEstoque.Custo)
cmd.Parameters.AddWithValue([Ô]@Descricao[Ô], oEstoque.Descricao.ToString.Trim)
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Next
Return True
Else
Return False
End If
Catch ex As Exception
Throw ex
Return False
Finally
db.Desconectar()
db = Nothing
cmd = Nothing
End Try
End Function
Vamos para a questão: Quando o método [ô]AddLote[ô] da camada DAL esta trabalhando a camada UI (Form) para de responder
dando a falsa impressão que o programa esta travando pois quando o DataGridView tem mais de 300 linhas o programa pareçe
até que está travado.
Teria como o form não travar durante o processo ou a DAL se comunicar com a BLL e atualizar o Form e o progressbar.
Ou aguam solução falta apenas isso para consolidar minha aplicação Agradeço a todos vocês programadores C# e VB.Net
O codigo pode ser em C# pois cosigo converter para VB.Net
Você pode usar o componente BackgroundWorker para carregar seu grid numa thread diferente.
Abraços!
Abraços!
Uma boa opção é o que o DS2T falou, mas você pode também usar eventos, que podem ser capturados na UI e exibir o progresso. Como você possui várias camadas, este evento deve ser disparado da camada mais interna(DAL) que por sua vez será capturado na BLL e disparado novamente para a UI.
Tem como exemplificar pois está fazendo 4 dias e não consigo terminar este projeto por conta deste problema.
Obrigado KERPLUNK
Obrigado KERPLUNK
Sem problemas. Existem vários exemplos por aà sobre isso, como no macoratti, por exemplo.
Esta pagina não me ajudou e não abriu minha mente para a resposta.
Poderia me ajudar mais uma vez para que eu termine o projeto??
Obrigado: KERPLUNK
Poderia me ajudar mais uma vez para que eu termine o projeto??
Obrigado: KERPLUNK
AÃ está o exemplo que você pediu em privado.
OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO
Se caso você ver um erro no obrigado me avisa.
Me salvou
Se caso você ver um erro no obrigado me avisa.
Me salvou
Tópico encerrado , respostas não são mais permitidas