id 在 MS SQL 服务器的数据库中输入为 0
id entering as 0 in database in MS SQL Server
所以我在这里的代码有一些问题,因为我是 C# 和 linq 的新手。
我正在尝试将 id、icon_url 和计数值插入到我的数据库中。但是当我插入第一行时,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();
}
}
更新:
当我将标识规范设置为 "Yes" 时,它又给我一个错误。
请注意,我无法更新我的 .edmx 模型,因为它是 xml 格式并且没有显示模型图。此外,数字 0 仍插入数据库中。
请看下图。
您不能使用查询从前端更新任何列以自动递增。
您有 3 个选项:
选项 1:-
使用 SQL 管理工作室对其进行更新。
选项 2:-
删除您的专栏并创建新专栏。如果你当前table没有记录。
但这会改变您的列的顺序位置。
-- 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:
您可以删除当前的 table 并重新创建它,并将列设置为 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]
所以我在这里的代码有一些问题,因为我是 C# 和 linq 的新手。 我正在尝试将 id、icon_url 和计数值插入到我的数据库中。但是当我插入第一行时,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();
}
}
更新:
当我将标识规范设置为 "Yes" 时,它又给我一个错误。
请注意,我无法更新我的 .edmx 模型,因为它是 xml 格式并且没有显示模型图。此外,数字 0 仍插入数据库中。
请看下图。
您不能使用查询从前端更新任何列以自动递增。
您有 3 个选项:
选项 1:-
使用 SQL 管理工作室对其进行更新。
选项 2:- 删除您的专栏并创建新专栏。如果你当前table没有记录。 但这会改变您的列的顺序位置。
-- 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:
您可以删除当前的 table 并重新创建它,并将列设置为 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]