【问题标题】:How to increment an auto-increment field with ADO.NET in C#如何在 C# 中使用 ADO.NET 递增自动递增字段
【发布时间】:2011-09-30 08:08:04
【问题描述】:

我有一个包含三个字段的数据库表:

产品(ProdId、名称、价格)

ProdId 是一个自动增量 字段。自增是种子 1,从 0 开始。

我在 ASP.NET 应用程序中使用 C# 对数据库执行操作。

如果我使用 LINQ 插入新记录,我只需将值分配给名称和价格字段,当我提交更改时,数据库负责增加 ProdId。

如何使用标准的 ADO.NET 来做到这一点?如果我写一个 INSERT 语句

INSERT INTO Product (Name, Price) VALUES (@Name, @Price)

当我执行命令时抛出异常;

无法在 ProdId 中插入 NULL。

有人有解决办法吗?谢谢

【问题讨论】:

  • 无论您使用 ADO、Linq、EF 等,这肯定有效。您确定该命令是针对同一个数据库/表执行的吗?
  • 在打开产品表后,在表设计器中使用 SQL Server Management Studio 在表产品中放置应该可以解决您问题的标识列 ProdId。

标签: c# ado.net auto-increment


【解决方案1】:

我会按这个顺序开始调试:

  • 确保在您的 SQL 中启用了 AUTO Increment

数据类型可以是numericmoneydecimalfloatbigintint

  • 使用 Studio 管理工具,手动运行插入查询

喜欢:

DECLARE @Name nvarchar(100), @Price money

SET @Name = 'Bruno Alexandre';
SET @Price = 100.10;

INSERT INTO Product (Name, Price) VALUES (@Name, @Price)

INSERT INTO Product SELECT @Name, @Price
  • 确保您在 ADO 连接中指向正确的数据库。

  • 如果使用 EF,刷新表使用 .edmx 文件上的更新表向导

【讨论】:

    【解决方案2】:

    你是如何定义 ProdId 的,试试 INT NOT NULL AUTO_INCREMENT ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 2012-10-23
      • 2010-09-30
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      相关资源
      最近更新 更多