C#.Net中编码自动生成索引

C#.Net中编码自动生成索引,c#,asp.net,sql,indexing,C#,Asp.net,Sql,Indexing,你好,先生 在C#.net的一个项目中,我有生成自动索引的代码,它工作得很好。我使用的逻辑如下; 首先计算表中的行数,然后检索表中存储的值。 然后,无论值是多少,它都将为下一个字段增加1,因此它是下一个索引。 当索引大于10时会出现问题。表中的索引是这样存储的 1. 10 11 2. 3. 4. 5. 6. 7. 8. 九, 所以表中的最后一个值是9,下一个增量将产生10,这是已经存在的 生成,因此它将是主键冲突错误 因此,plz指导如何在我的项目中实现自动索引生成 检查自动索引的数据类型。。。

你好,先生 在C#.net的一个项目中,我有生成自动索引的代码,它工作得很好。我使用的逻辑如下; 首先计算表中的行数,然后检索表中存储的值。 然后,无论值是多少,它都将为下一个字段增加1,因此它是下一个索引。 当索引大于10时会出现问题。表中的索引是这样存储的 1. 10 11 2. 3. 4. 5. 6. 7. 8. 九,

所以表中的最后一个值是9,下一个增量将产生10,这是已经存在的 生成,因此它将是主键冲突错误


因此,plz指导如何在我的项目中实现自动索引生成

检查自动索引的数据类型。。。我怀疑它是否被视为一根弦。您需要做的第一件事是将数据类型定义为整数。到目前为止,你的种子还可以。

为什么不把这个专栏做成这样呢

CREATE TABLE [dbo].[Foo](
    [Foo] [int] IDENTITY(1,1) NOT NULL,
    //Other columns
)
或者,如果数据库已经创建,则进行更改

ALTER TABLE [dbo].[Foo](
    [Foo] [int] IDENTITY(<Enter your last maximum number in the database>,1) NOT NULL,
    //Other columns
)
altertable[dbo].[Foo](
[Foo][int]标识(,1)不为空,
//其他栏目
)

希望它有帮助,而不是计算行数,您需要从表中获取该字段/列的最大值,这里根据给定的值,它将是11,然后将其增加+1

所以您需要在代码中使用以下查询

    Select Max(Key Field) + 1 from [table name]//this will give you new key value i.e. 12

我建议您使用Identity列,这样您就不必担心主键值的递增。

是否在数据库中使用
AUTOINCREMENT
字段?