如何在主键列已设置默认标识时将数据插入 sql 服务器数据库(1, 1)

How to insert data into sql server database when the primary key column already set default identity(1, 1)

我正在尝试将两个数据列插入到我的 SQL 服务器数据库中,但在代码行出现错误 -> cmd.ExecuteNonQuery();

Cannot insert the value NULL into column OrderID, table RestaurantApp.dbo.Junc_Order; column does not allow nulls. INSERT fails.

OrderID列实际上是我数据table中的主键。我将它设置为 identity(1, 1) 并想插入其他数据,同时它可以自动插入 1, 2, 3, 4....。

这是我的部分代码:

string insertString = "INSERT INTO Junc_Order(ID, Quantity)values (@ID, @Quantity)";
SqlCommand cmd = new SqlCommand(insertString, conn);
cmd.Parameters.AddWithValue("@ID", r_ID);
cmd.Parameters.AddWithValue("@Quantity", r_Quantity);
cmd.ExecuteNonQuery();

我已经在这些代码之前连接到数据库了,所以问题应该不是这个。

已更新 Junc_Order table 设计:

OrderID (PK,FK,int,not null)

ID(FK,int,not null)

Quantity(int,not null)

通过查看您的问题,您的插入查询似乎不正确:

  1. 首先,您不需要插入 "OrderID",因为它是主键标识,所以 sql 服务器会自动插入它。
  2. 其次,在某处您将 "r_ID" 设为空,这就是您面对 error.Verify 并使用以下代码修改代码的原因:

    字符串 insertString = "INSERT INTO Junc_Order(Quantity) values(@Quantity)"; SqlCommand cmd = new SqlCommand(insertString, conn); cmd.Parameters.AddWithValue("@数量", r_Quantity); cmd.ExecuteNonQuery();