переименовать строки в datatable

В настоящее время я работаю с базой данных для стороннего приложения, которое не проверяет формы для данных в столбцах, с которыми я работаю. Я использую SqlDataReader (поскольку для этого не нужно изменять существующие таблицы в базе данных), чтобы поместить данные в таблицу данных и удалить дубликаты, но когда я удаляю дубликаты, у меня все равно остаются дубликаты мусора из-за того, что разные люди неправильно вводили данные. Например;

  • яблоко
  • ПРИЛОЖЕНИЕ
  • Банан
  • БАННЕЙН
  • БАНА
  • oRang
  • и т.д...

Как я могу исправить их в таблице данных, чтобы в таблице данных были только Apple, Orange и т. Д.

К счастью, в этот столбец входит всего несколько разных элементов, и все они начинаются с другой строки, например, cen, cas, поэтому, если бы я мог изменить все, начиная с app

К сожалению, модификация исходной программы для проверки данных при вводе невозможна.


person h8a    schedule 02.04.2013    source источник
comment
Это отстой, что вы не можете просто изменить проверки в исходном SRC, вам нужно было бы каким-то образом предположить, что имел в виду пользователь, возможно, вы могли бы добавить какой-нибудь Extension метод или `интерфейс, который заставит пользователя проверять там запись, если введенное слово не является правильное слово.. это хороший вопрос, может ли это сделать то, что вы ищете msdn.microsoft.com/en-us/library/ms141809.aspx   -  person MethodMan    schedule 02.04.2013
comment
@DJKRAZE К сожалению, стороннее приложение для ввода данных полностью закрыто, но к таблицам можно получить прямой доступ. Я использую таблицы из базы данных приложения, а также таблицы из другого приложения для создания пользовательских отчетов, превышающих функциональность обоих исходных приложений. Проблема в том, что без проверки формы в этом поле люди помещают все, что близко, или любую аббревиатуру, которую они придумали для элемента. Если я могу существенно проверить данные, то я должен быть в порядке.   -  person h8a    schedule 02.04.2013
comment
звучит так, будто вам нужно установить некоторые более жесткие Standards, это должно быть такой беспорядок, как вообще можно управлять запасами или прибылями / убытками с чем-то вроде этого .. звучит так, как будто это не "US based Operation"   -  person MethodMan    schedule 02.04.2013
comment
@DJKRAZE Я работаю с большим количеством исторических данных для создания профилей. Я пишу приложение, которое будет извлекать эти данные из этой базы данных, преобразовывать их и отображать в виде сетки на основе условий, установленных пользователем. Текущие и будущие данные есть и будут в порядке. Я предполагаю, что это только два поля, которые первоначальный Dev предполагал быть динамическими из-за их природы.   -  person h8a    schedule 03.04.2013
comment
Я отредактировал ваш заголовок. См. Должны ли вопросы включать «теги» в свои заголовки?, если нет единого мнения, не следует.   -  person John Saunders    schedule 06.04.2013


Ответы (1)


Я думаю, что этот скрипт поможет вам.

update [TableName]
set [ColumnName] = 'someName'
where [ColumnName] in 
(
select [ColumnName] from [TableName]
where [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
)
--to be safe google "begin transaction" and how to "rollback" the changes

после изменения имени столбца вы можете удалить столбец на основе имени, на которое вы его изменили.

delete [TableName]
where [ColumnName] = 'TheName'
person NNassar    schedule 02.04.2013
comment
Нельзя ли изменить данные, извлеченные из базы данных? - person h8a; 02.04.2013
comment
конечно, вы можете изменить его и отобразить то, что вы хотите отобразить из этой таблицы пользователю. - person NNassar; 05.04.2013
comment
У вас есть простое решение для этого? Я могу удалить дубликаты, но перед этим я хочу переименовать дубликаты мусора. Вы знаете, как это сделать? - person h8a; 05.04.2013