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

duduml

erro ao verificar dados (Npgsql) [Resolvido]

Mensagens Recomendadas

duduml

Bom dia!!

cá estou eu de novo...é o seguinte...

eu tenho este código que em baixo mostro para inserir registos numa tabela, contudo, para inserir esse registo...já tem de haver um codigo de peça registado na tabela anterior...e quando faço essa verificação, se a peça estiver registada, dá-me erro e não insere os dados!!!

código:

Imports Npgsql
Public Class Inserir_artigo
    Private peca As Long
    Private quantidade As String
    Dim con_str As String = ("Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=registos;")
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        div() ' <--- procedimento que separa os dados da referencia
        Dim conn As New NpgsqlConnection(con_str)
        Dim strSql As String = String.Empty
        Dim strSql1 As String = String.Empty
        Dim strSql2 As String = String.Empty

        '=================== Criar e guardar os dados nas vars ========================================
        Dim strref As String = refTextBox1.Text
        Dim intpeca As Long = peca
        Dim intquantidade As Integer = Integer.Parse(quantidade)
        Dim dtdata As Date = Now
        '================= Estabelecer ligação com a Base de Dados ====================================
        Try
            conn.Open()
        Catch ex As Exception
            MsgBox("Erro de ligação com a base de dados." & vbCrLf & ex.Message & vbCrLf & ex.ToString, MsgBoxStyle.Critical, "ErrID: #001")
            Exit Sub
        End Try
        '============== verificar se o produtoo já existe ================================

        strSql1 = "SELECT codigopeca FROM registos WHERE codigopeca = '" & intpeca & "'"

        Dim commandSQL1 As New NpgsqlCommand(strSql1, conn)
        Dim reader As Npgsql.NpgsqlDataReader
        Try
            reader = commandSQL1.ExecuteReader()
        Catch ex As Exception
            MsgBox("Erro ao executar um comando na base de dados." & vbCrLf & ex.Message & vbCrLf & ex.ToString, MsgBoxStyle.Critical, "ErrID: #004")
            limpar_dados()
            Exit Sub
        End Try
        If reader.HasRows = False Then
            MsgBox("Este produto ainda não está registado!", MsgBoxStyle.Exclamation, "Alerta")
            limpar_dados()
            Dim resultado As MsgBoxResult
            resultado = MsgBox("Deseja regista-lo agora?", vbYesNo, "operação")
            If resultado = vbYes Then
                Dim found As Boolean = False
                For Each openForm As Form In Application.OpenForms
                    If TypeOf openForm Is inserir_pordut Then
                        openForm.Focus()
                        found = True
                    End If
                Next
                If Not found Then
                    Dim form As New inserir_pordut
                    form.MdiParent = MDIParent1
                    form.Show()
                End If
            End If
            Exit Sub
        End If
        '============== verificar se a referência já existe ================================

        strSql2 = "SELECT referencia FROM produtos WHERE referencia = '" & refTextBox1.Text & "'"

        Dim commandSQL2 As New NpgsqlCommand(strSql2, conn)
        Dim ler As Npgsql.NpgsqlDataReader
        Try
            ler = commandSQL2.ExecuteReader()
        Catch ex As Exception
            MsgBox("Erro ao executar um comando na base de dados." & vbCrLf & ex.Message & vbCrLf & ex.ToString, MsgBoxStyle.Critical, "ErrID: #004")
            limpar_dados()
            Exit Sub
        End Try
        If ler.HasRows = True Then
            MsgBox("Este produto já se encontra registado!", MsgBoxStyle.Exclamation, "Alerta")
            limpar_dados()
            Exit Sub
        End If
        commandSQL2.Dispose()
        '========================== inserir dados na BD ===============================================
        strSql = "INSERT INTO produtos (referencia,codigopeca,data,quantidade) VALUES ('" & strref & "','" & intpeca & "','" & dtdata & "','" & intquantidade & "')"
        Dim commandSQL As New NpgsqlCommand(strSql, conn)
        commandSQL.ExecuteNonQuery()
        commandSQL.Dispose()
        conn.Close()
        conn.Dispose()
        limpar_dados()

Alguém tem sugestões??? já perdi a manhã a tentar corrigir isso...;) bolas... :angry1:

CUMPS


"use windows, você merece!"

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.