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 inserir dados( Npgsql) [Resolvido]

Mensagens Recomendadas

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!"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!"

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.