У меня есть пакетный процесс, который считывает данные из нескольких таблиц в набор данных на основе общего ключа. Затем я создаю второй набор данных запроса данных назначения по одному и тому же ключу.Использование DataAdapter .Update для вставки/обновления строк в наборе данных (не основанных на DBs PK) проблема
На данный момент у меня есть два набора данных, которые являются структурно идентичными (с точки зрения таблицы/столбца). Затем у меня есть процесс, который добавляет любую строку, которая существует в источнике, к целевому набору данных. Кроме того, процесс попытается обновить некоторые столбцы на основе общего ключа.
Проблема возникает, когда вызывается команда DataAdapter.UPDATE с существующими строками, которые необходимо обновить. Ошибка: Ошибка System.InvalidOperationException Message = «Таблица, указанная в инструкции SELECT, не содержит уникальный столбец ключа или идентификатора, или оператор SELECT не включает все столбцы ключей».
Поскольку у меня нет способа контролировать, что PK находится в БД назначения, есть ли способ рассказать адаптеру, какой ключ для этого конкретного обновления? У меня есть «пользовательский» набор первичных ключей для каждого DataTable в наборе данных.
Это не пользовательский интерфейсный пакетный процесс, и его перфекционные требования довольно низки. (для объяснения использования наборов данных и т. д.)
Любые мысли?
Я установил PK и продолжаю получать ошибку (которая в справочных документах указывает на фактическую БД, не имеющую жизнеспособного ПК) – WIDBA 2008-11-10 17:19:18