为了账号安全,请及时绑定邮箱和手机立即绑定

MS SQL Server 数据库中的 id 输入为 0

MS SQL Server 数据库中的 id 输入为 0

C#
慕沐林林 2023-09-16 17:06:14
由于我是 C# 和 linq 的新手,因此我的代码遇到了一些问题。我正在尝试将 id、icon_url 和 count 值插入到我的数据库中。但是当我插入第一行时,id 设置为 0,当我添加另一行时,我收到两个错误。我想自动递增 ID,因为它是主键并且类型为 int。我怎样才能解决这个问题?请参阅下面的代码和屏幕截图。图片数据库数据库设计错误1错误2代码:bool imcount = db.dashboards.Any(dash => dash.icon_url.Contains(imageurl));  if (imcount == false)  {    using (ECardModel db = new ECardModel())    {      dashboard imageCount = new dashboard()      {        icon_url = imageurl,        count = 1      };      db.dashboards.Add(imageCount);      db.SaveChanges();    }  }  else if (imcount == true)  {    using (ECardModel db = new ECardModel())    {      int icount = db.dashboards.Where(dash => dash.icon_url.Contains(imageurl)).Max(dash => dash.count);      dashboard imageCount = new dashboard()      {        count = icount + 1      };      db.dashboards.Add(imageCount);      db.SaveChanges();    }  }
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您无法使用查询从前端将任何列更新为自动增量。

您有 3 个选择:

选项 1:-
使用 SQL mangement studio 更新它。

https://img1.sycdn.imooc.com//6505707f0001dafb03550562.jpg

选项 2:- 删除您的专栏并创建新专栏。如果当前表中没有记录。但这会改变您的列的序号位置。


-- ID is the name of the  [to be] identity column

ALTER TABLE [yourTable] DROP COLUMN ID 

ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

选项 3:


您可以删除当前的表并再次创建它,并将列设置为IDENTITY



CREATE TABLE [dbo].[table](

    [Id] [int] IDENTITY(1,1) NOT NULL,

    ...

    CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED 

(

    [Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]


查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信