DataTable.Merge не работает после изменения типов данных столбцаC#

Место общения программистов C#
Ответить
Anonymous
 DataTable.Merge не работает после изменения типов данных столбца

Сообщение Anonymous »

Я пытаюсь использовать метод DataTable.Merge и сталкиваюсь с ситуацией, когда он не работает.
Я импортирую две таблицы Excel в две таблицы DataTable, но при импорте также меняю два столбца в каждой импортируемой таблице (первичный ключ для данных) с double на Int32. Я делаю это, создавая новый столбец Int32, перемещая данные в этот столбец, удаляя старый столбец и присваивая новому столбцу Int32 имя старого столбца.
Вот два исходных результата в сетке. Тот, что слева, содержит список личных титулов. Тот, что справа, содержит описания этих названий. Вы можете видеть, что поля Master ID и Sub Id являются ключами к этим таблицам.
Изображение

Изображение

Когда я пытаюсь объединить таблицы, я получаю очень плохие результаты. На снимке экрана ниже вы можете видеть, что данные не были правильно объединены. Он перезаписал Master ID 1 на Master Id 12 из второй таблицы данных - и ни одно из значений описания не было заполнено.
Изображение

Теперь, если я возьму эти таблицы данных и сохраню их в XML (метод WriteXML), импортирую их, а затем запущу ту же процедуру слияния - я получить то, что я ожидал от метода слияния:
Изображение

почему это происходит? Казалось бы, изменение типа поля вызывает у меня некоторые проблемы, и я не понимаю, почему. Есть ли что-то еще, что мне нужно изменить, прежде чем я запущу метод Merge для таблиц данных?

Подробнее здесь: https://stackoverflow.com/questions/798 ... data-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»