【问题标题】:Auto-Index generation in C# .Net by coding通过编码在 C# .Net 中生成自动索引
【发布时间】:2011-01-21 03:59:12
【问题描述】:

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

所以表中的最后一个值是 9,下一个增量将产生 10,这已经是 生成所以会是主键违规错误。

所以请指导如何在我的项目中实现自动索引生成。

【问题讨论】:

  • 在数据库中使用AUTOINCREMENT 字段?

标签: c# asp.net sql indexing


【解决方案1】:

你为什么不把专栏变成这样的Identity column

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
)

希望对你有帮助

【讨论】:

    【解决方案2】:

    您需要从表中为该字段/列获取 MAX 值,而不是 COUNTING ROWS,这里根据给定的值将是 11,然后将其增加 +1。

    所以你需要在你的代码中使用以下查询,

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

    我建议你使用标识列,这样你就不必担心增加主键值。

    【讨论】:

      【解决方案3】:

      检查自动索引的数据类型...我怀疑它是否被视为字符串。您需要做的第一件事是将数据类型定义为整数。到目前为止,你的播种没问题。

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 1970-01-01
        • 2018-05-29
        • 2017-10-22
        • 2011-02-27
        • 1970-01-01
        • 2011-07-14
        • 2020-02-02
        • 2017-11-04
        相关资源
        最近更新 更多