Существует множество примеров того, как проверить наличие дубликатов в DataTable, но не могу найти ничего о том, как этого добиться, когда в DataGridView есть скрытый столбец идентификаторов. Итак, у меня есть DataGridView, источник данных которого поступает из SQL запроса. Этот запрос возвращает три столбца, уникальный идентификатор и данные, необходимые для сетки. При сохранении данных мне нужен столбец идентификаторов, но я хочу иметь возможность проверять записи на наличие дубликатов перед сохранением, что в настоящее время не работает, поскольку идентификация делает каждую строку уникальной. Существует также столбец «Удалить», поэтому запись выглядит следующим образом:
Вот код, который я использую для проверки дубликатов:
// Create a copy of the data
var duplicateTable = dataTable.Clone();
var primaryKey = new DataColumn[duplicateTable.Columns.Count];
duplicateTable.Columns.CopyTo(primaryKey, 0);
duplicateTable.PrimaryKey = primaryKey;
// Check if any data row has a duplicate
return dataTable.Rows.Cast<DataRow>().Any(dataRow => duplicateTable.Rows.Contains(dataRow.ItemArray));
Что я хочу сделать, так это проверить два столбца «Элемент» и «Дата начала», чтобы выяснить, являются ли какие-либо из них дубликатами.
Заранее спасибо
Мартин