Отображение последней записи после вставки c# - PullRequest
1 голос
/ 09 апреля 2020

Я прочитал документ о том, как извлечь последнюю запись после вставки. Однако, когда я делаю, ничто не заполняется на datagridview. Это то, что у меня есть.

 static String connectionString = @"Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename= C:\Users\home\Documents\C# Programs\program\Database.mdf ;Integrated Security = True";
        private void displayLastInsertedRecord()
        {
            using (SqlDataAdapter dataAdapter = new SqlDataAdapter("select @@identity", connectionString))
            {
                DataTable table = new DataTable(connectionString);
                dataAdapter.Fill(table);
                employeeDataGridView.DataSource = table;
            }
        }

Я проверил, действительно ли данные хранятся в таблице базы данных, и это действительно так. Он просто не отображает такие факторы, как их имя, город, адрес и т. Д. c и т. c. Не могу понять, что я делаю неправильно.

1 Ответ

1 голос
/ 09 апреля 2020

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

SELECT @@IDENTITY

на:

SELECT @LastID = @@IDENTITY; SELECT * FROM [YourTableName] WHERE [YourPrimaryKeyColumn] = @LastID

, где [YourTableName] - это таблица, из которой вы хотите получить вставленную строку (должна соответствовать последней команде вставки, в противном случае возвращенный набор данных либо не будет содержать строк, либо будет иметь случайно совпадающую запись - в основном, данные мусора), а [YourPrimaryKeyColumn] - это имя столбец первичного ключа в вышеупомянутой таблице.

Также рассмотрите возможность использования SCOPE_IDENTITY или IDENT_CURRENT вместо.

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