【发布时间】:2021-03-10 20:05:19
【问题描述】:
我在使用简单的本地 SQL 数据库时遇到问题。我对数据库或使用 C# 访问它们不是很了解,所以任何帮助将不胜感激。我正在尝试使用 C# 通过 Linq to SQL 向我的数据库中的一个表添加一个条目。这是我的sn-p代码。
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
tbl_Inventory inv = new tbl_Inventory();
inv.Title = addTitleTextBox.Text;
inv.Model = addModelTextBox.Text;
inv.Category = addCategoryTextBox.Text;
inv.Quantity = int.Parse(addQuantityTextBox.Text);
inv.Price = decimal.Parse(addPriceTextBox.Text);
inv.Description = addDescriptionTextBox.Text;
db.tbl_Inventories.InsertOnSubmit(inv);
db.SubmitChanges();
int id = inv.IdProducts;
MessageBox.Show($"Item creation successful. Item number is {id}");
}
我不断收到以下错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表 'tbl_Inventory' 中的标识列插入显式值
我的表有一个名为 IDProducts 的列,它用作标识列以递增 1。我可以在 Visual Studio 设计窗口中添加条目,它添加的条目没有错误,增量工作正常,但不是当我运行我的代码时。问题是我的代码没有尝试为IDProducts 赋值。我尝试删除 IDProducts 并将其添加回来,但我仍然遇到同样的错误。我通过 Visual Studio 创建了另一个表,其方式与上面的代码非常相似,将条目添加到表中,我没有任何问题。我不确定我可能会做些什么不同的事情。
【问题讨论】:
-
看看这篇文章:appuals.com/…
-
您必须在数据库中将
Identity设置为true。分享一张你在 SQL server 中的表设计图 -
我认为真正的问题是你的 C# 模型类没有正确告诉 Linq-to-SQL
IDProducts列是数据库生成的标识列 - 你能告诉我们 C#模型类?
标签: c# sql-server linq-to-sql