Jump to content

Tableadapter - Erro nas queries


vagueante
 Share

Recommended Posts

Boas,

Tenho acesso a uma BD através de um dataset, no qual tenho dois tableadapters, cada um com várias queries (com e sem parametros), funciona bem até ao momento que deixa de funcionar!!!

Passo a explicar, de vez em quando as queries deixam de retornar valores para o código (rows.count =0) e mesmo no preview, deixa de apresentar resultados, quando tenho a certeza que lá estão os dados, muitas vezes basta escolher configure, e seguir carregando nos botões next até ao fim, rebuild e passa a funcionar !?!

A chatice nisto é que não sei o que possa estar a fazer para isto acontecer, vou alterando a aplicação, e em algumas queries acontece isto, lá tenho que andar com debug para descobrir onde está o problema, pois na app em cause recebo dados externos que podem ou não conter os dados completos, daí a dificuldade. Perco imenso tempo e após uma manhã, lá descobri as duas queries que estavam "estragadas

Alguém sabe o que causa esta falta de estabilidade no dataset? Ou se existe alguma forma de "fiabilizar" a coisa?

Obrigado

Link to comment
Share on other sites

Olá boa noite.

Veja esta dica talvez ajude a resolver o seu problema.

Para lançar um erro em tempo de execução, vamos criar uma rotina básica para forçar um erro, que nada mais é do que dividir um número por zero “0”. Faça um duplo-clique no centro do Form1, para que o VStudio crie o escopo do evento Load do formulário. Escreva a listagem abaixo.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
    Dim valor1 As Integer = 5
    Dim valor2 As Integer = 0
    Try
        Dim ret As Integer = valor1 / valor2
    Catch ex As Exception
        Me.GerarLogErro(ex)
        MessageBox.Show("Ocorreu um erro inesperado. Avise ao suporte.", _
                        "Informação : ")
    End Try
End Sub

- No código acima, utilizamos um bloco de tratamento de erro (Try… Catch) e quando o erro acontecer, os dados da exceção serão enviados para um método chamado GerarLogErro. A implementação do método está abaixo.

Private Sub GerarLogErro(ByRef e As Exception)
    Try
        Dim sw As New StreamWriter(Application.StartupPath & "\LogErro.txt", True)
        With sw
            .WriteLine("Data: " & DateTime.Now.ToShortDateString())
            .WriteLine("Hora: " & DateTime.Now.ToShortTimeString())
            .WriteLine("Descrição do erro: " & e.Message)

            .WriteLine("Formulário: " & form)
            .WriteLine("Computador: " & My.Computer.Name)
            .WriteLine("Utilizador: " & My.User.Name)
            .WriteLine("---")
            .Flush()
            .Dispose()
        End With
    Catch
    End Try
End Sub

Este é um modo simples de como documentar as mensagens inesperadas que ocorrem no sistema.

Espero ter ajudado.

Até+

Programadorvb6

EDIT: GeSHi adicionado

______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.
 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.