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

Sign in to follow this  
duduml

Erro ao inserir dados( Npgsql) [Resolvido]

Recommended Posts

duduml

ao tentar inserir dados na tabela produtos, dá-me este erro: ERROR: 23503: insert or update on table "produtos" violates foreign key constraint "produtos_codigopeca_fkey"

não estou a perceber porque...:S

o código é este:

Imports Npgsql
Public Class Inserir_produto
    Private peca, quantidade As Integer
    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

        '=================== Criar e guardar os dados nas vars ========================================
        Dim strref As String = refTextBox1.Text
        Dim intpeca As Integer = peca
        Dim intquantidade As Integer = 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 número de funcionário já existe ================================

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

        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 = True Then
            MsgBox("Este produto já está registado!", MsgBoxStyle.Exclamation, "Alerta")
            limpar_dados()
            Exit Sub
        End If
        '========================== 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()
    End Sub

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
pmaster

Penso que o problena que tens não tem a ver com o codigo mas com o que estas a inserir na base de dados, porque estas a inserir qualquer coisa que te esta a violar a chave estrangeira.

Espero ter ajudado ;)

Share this post


Link to post
Share on other sites
duduml

Pois, vinha aqui dizer isso mesmo... (burrice minha...) ;)

peço desculpa pessoal...é que li e tentei corrigir, só que mal...e vim aqui pedir auxilio....depois é que vi que havia feito mal...lol

peço desculpa!

CUMPS


"use windows, você merece!"

Share this post


Link to post
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
Sign in to follow this  

×

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.