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

Место общения программистов C#
Ответить
Anonymous
 C# 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#»