Автоматическое создание индекса в C # .Net путем кодирования - PullRequest
3 голосов
/ 21 января 2011

привет, сэр В проекте C # .net у меня есть код для генерации автоматического индекса, он работает нормально. Я использовал логику, как показано ниже; Сначала посчитайте, сколько строк в таблице, затем получите, какое значение было сохранено в таблице. Тогда независимо от значения оно будет увеличено на 1 для следующего поля и, следовательно, это следующий индекс. Проблема возникает, когда индекс больше 10. Индекс в таблице хранится так 1 10 11 2 3 4 5 6 7 8 9

, поэтому последнее значение в таблице равно 9, а следующий шаг даст 10, то есть уже сгенерировано так, что это будет ошибка нарушения первичного ключа.

Итак, плз, как добиться автоматической генерации индекса в моем проекте.

Ответы [ 3 ]

2 голосов
/ 21 января 2011

Почему бы вам не сделать столбец Идентификационный столбец , как это

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 голосов
/ 21 января 2011

Вместо COUNTING ROWS вам нужно получить MAX-значение из таблицы для этого поля / столбца, здесь, согласно заданным значениям, оно будет равно 11, а затем увеличить его на +1.

Так что вам нужно использовать следующий запрос в вашем коде,

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

Я предлагаю вам использовать столбец Identity, чтобы вам не приходилось беспокоиться об увеличении значений первичного ключа.

0 голосов
/ 21 января 2011

Проверьте тип данных вашего автоиндекса ... Я сомневаюсь, что он рассматривается как строка. Первое, что вам нужно сделать, это определить тип данных в целое число. Пока ваш посев в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...