Получите значение автонабора, которое только что было вставлено в C#

Если поле базы данных является полем автонабора, то база данных автоматически генерирует для него значения. Например, предположим, что таблицы Students имеют типичные поля, такие как FirstName, LastName, EnrollmentYear и т. д. Вы можете сделать поле StudentId полем autonumber. Затем база данных автоматически устанавливает это значение в 1, 2, 3 и так далее для новых студентов по мере их создания.

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


Обработчик события Load формы просто создает объект OleDbConnection и устанавливает его строку подключения для использования OLE DB для подключения к базе данных Students.mdb . Во время разработки я добавил эту базу данных в проект, установил свойство «Свойство сборки» в «Содержимое» и установил для своего свойства «Копировать в выходной каталог» значение «Копировать, если новый», чтобы база данных автоматически копировалась в исполняемый каталог.

Хорошо, вернемся к автонументированию.

Чтобы создать новую запись в таблице с полем автонабора, просто не указывайте значение для этого поля, и база данных автоматически генерирует ее. Если вы вводите значения первого и последнего имени и нажмите «Создать», в этом примере используется следующий фрагмент кода для создания новой записи таблицы Student.

Этот код создает новый объект OleDbCommand для выполнения инструкции SQL INSERT на объекте соединения Conn. Он создает параметры, содержащие значения, которые необходимо вставить для полей FirstName и LastName, открывает соединение и выполняет команду.

Когда выполняется ExecuteNonQuery, база данных вставляет новую запись с данными FirstName и LastName. Поле StudentId является полем autonumber, поэтому его значение автоматически создается базой данных.

Часто следующее, что нужно сделать программе, - это работать с этой записью. К сожалению, он не знает, какое значение было присвоено поле с автозапусками. Если другие поля могут однозначно идентифицировать запись, это не проблема. Вы можете просто найти эти значения, чтобы получить вновь созданную запись. К сожалению, поля autonumber часто используются для уникальной идентификации записей. (Например, как идентификаторы студентов, клиентов и сотрудников.)

Итак, как вы можете найти новую запись, если поле autonumber является единственным уникальным идентификатором? Однако в программе C#, работающей с базой данных Access (возможно, не в более старых версиях Access), вы можете выполнить запрос SELECT @@ IDENTITY, чтобы получить добавленное значение автономера.

После того, как он использует предыдущий код для создания новой записи Students, в этом примере используется следующий код для извлечения и отображения нового значения StudentId.

Этот код создает новый объект OleDbCommand для выполнения запроса SELECT @@ IDENTITY и выполняет его. Результатом метода ExceuteQuery является объект OleDbDataReader, который позволяет просматривать полученные результаты. Затем код вызывает метод Read объекта, чтобы перейти к первой (и единственной) записи в результатах. Он получает первое (и единственное) значение в результате, которое является значением autonumber. Наконец, код отображает значения первого и последнего имени вместе со значением вновь созданного StudentId.

Источник: http://csharphelper.com/blog/2016/03/get-an-autonumber-value-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *