【问题标题】:Saving data with autonumber primary key fields使用自动编号主键字段保存数据
【发布时间】:2011-08-28 10:08:24
【问题描述】:

这是我在 PostgreSQL 中的数据库。所有 id 字段都是串行的。问题是当我在所有 3 个表中输入值时尝试从 datagridviews 保存数据时,它没有保存并显示错误:无法启用约束。一行或多行包含违反非空、唯一或外键约束的值。

我正在保存的代码:

        adptDelivery.Update((DataTable)DGV_Delivery.DataSource);
        adptProduct.Update((DataTable)DGV_Product.DataSource);
        adptProduct_Delivery.Update((DataTable)DGV_Product_Delivery.DataSource);

【问题讨论】:

  • 这个错误听起来非常模糊,是来自应用程序吗?如果是这样,当它运行时 pgsql 在其日志中说什么? PG应该告诉你哪个表,哪个pk约束等导致了问题。
  • 这三个语句中的哪一个导致违反约束?是否有任何 NOT NULL 或 UNIQUE 约束或只是外键?
  • @mu si adptProduct_Delivery.Update((DataTable)DGV_Product_Delivery.DataSource);它说:“id_product”列中的空值违反非空约束

标签: c# database postgresql primary-key auto-increment


【解决方案1】:

我猜您正在尝试插入一个已被另一个进程插入的唯一编号。我们需要伪代码来显示您在做什么以及您是如何做的,以便真正解决问题。

【讨论】:

  • 我没有插入任何唯一的数字。我正在插入产品名称和价格,然后我正在插入交付供应商,然后我在产品交付中插入该产品和供应商。
猜你喜欢
  • 1970-01-01
  • 2022-11-30
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 2015-03-16
相关资源
最近更新 更多