如何在 C# 中使用 ADO.NET 增加自动增量字段

发布于 2024-12-07 12:05:47 字数 455 浏览 1 评论 0原文

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

产品(ProdId,名称,价格)

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

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

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

我如何使用标准 ADO.NET 来做到这一点?如果我在执行命令时编写 INSERT 语句,

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

则会引发异常;

无法在 ProdId 中插入 NULL。

有人有解决方案吗?谢谢

I have a database table with three fields:

Product(ProdId, Name, Price)

Where ProdId is a auto-increment field. The auto-increment is with seed 1, starting from 0.

I perform operation on the database by using C# in an ASP.NET application.

If I use LINQ to INSERT a new record I just assign values to Name and Price fields and when I submit the changes the database is responsible to increment the ProdId.

How can I do it with the standard ADO.NET? If I write an INSERT statement

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

when I execute the command an exception is thrown;

Cannot insert NULL in ProdId.

Anybody has a solution? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没有你我更好 2024-12-14 12:05:47

我将按以下顺序开始调试:

  • 确保在您的 SQL 中,您确实在

在此处输入图像描述

上具有自动增量数据类型可以是numericmoneydecimalfloatbigint 和int

  • 使用 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 文件上的更新表向导刷新您的表

I would start debugging in this order:

  • Make sure in your SQL you do have AUTO Increment on

enter image description here

Data Types can be numeric, money, decimal, float, bigint and int

  • using the Studio Management tool, run the insert query manually

like:

DECLARE @Name nvarchar(100), @Price money

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

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

or

INSERT INTO Product SELECT @Name, @Price
  • Make SURE that you are pointing in your ADO Connection to the correct Database.

  • If using EF, refresh your table using the Update Table Wizard on the .edmx file

ㄟ。诗瑗 2024-12-14 12:05:47

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

How did you define the ProdId, try INT NOT NULL AUTO_INCREMENT ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文