Как увеличить поле автоинкремента с ADO.NET в C # - PullRequest
1 голос
/ 30 сентября 2011

У меня есть таблица базы данных с тремя полями:

Продукт (ProdId, Name, Price)

Где ProdId - это поле с автоинкрементом . Автоинкремент с начальным числом 1, начиная с 0.

Я выполняю операции с базой данных, используя C # в приложении ASP.NET.

Если я использую LINQ для ВСТАВКИ новой записи, я просто присваиваю значения полям Name и Price, и когда я отправляю изменения, база данных отвечает за увеличение ProdId.

Как я могу сделать это со стандартным ADO.NET? Если я напишу оператор INSERT

INSERT INTO Product (Name, Price) VALUES (@Name, @Price)

когда я выполняю команду, генерируется исключение;

Невозможно вставить NULL в ProdId.

У кого-нибудь есть решение? Спасибо

Ответы [ 2 ]

6 голосов
/ 30 сентября 2011

Я бы начал отладку в следующем порядке:

  • Убедитесь, что в вашем SQL у вас есть AUTO Increment на

enter image description here

Типы данных могут быть numeric, money, decimal, float, bigint и int

  • с помощью инструмента управления Studio, запустить вставкузапрос вручную

как:

DECLARE @Name nvarchar(100), @Price money

SET @Name = 'Bruno Alexandre';
SET @Price = 100.10;

INSERT INTO Product (Name, Price) VALUES (@Name, @Price)

или

INSERT INTO Product SELECT @Name, @Price
  • Убедитесь, что SURE , на который вы указываетев вашем соединении ADO с правильной базой данных.

  • При использовании EF обновите таблицу с помощью мастера обновления таблиц в файле .edmx

1 голос
/ 30 сентября 2011

Как вы определили ProdId, попробуйте INT NOT NULL AUTO_INCREMENT ...

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