在数据表中重命名行

3

我目前正在处理一个第三方应用程序的数据库,该数据库没有对我正在处理的列中的数据进行表单检查。 我正在使用 SqlDataReader(因为这不需要修改数据库中现有的表)将数据放入 datatable 中并删除重复项,但是当我删除重复项时,仍然会留下垃圾重复项,因为不同的人错误地输入了数据。 例如;

  • Apple
  • APPL
  • Banana
  • BANNEAN
  • BANA
  • oRang
  • 等等...

如何在datatable中更正它们,以便datatable仅包含Apple,Orange等...

幸运的是,只有几种不同的物品进入此列,并且所有物品都以不同的字符串开头,例如 cen,cas,因此如果我能够更改所有以app开头的内容

不幸的是,修改原始程序以在输入时检查数据不是一种选择。


很遗憾,您不能仅修改原始“SRC”中的检查,您必须以某种方式假定用户的意思,也许您可以添加一些“扩展”方法或“接口”,强制用户验证其输入,如果他们输入的单词不正确。这是一个好问题,这可能是您正在寻找的内容吗?http://msdn.microsoft.com/en-us/library/ms141809.aspx - MethodMan
@DJKRAZE 很不幸,数据输入的第三方应用程序是完全封闭的,但可以直接访问表格。我正在使用应用程序数据库中的表格以及另一个应用程序中的表格来生成超出原始应用程序功能的自定义报告。问题在于该字段没有表单检查,人们会输入任何接近或他们认为适合该项的缩写。如果我可以对数据表进行基本的表单检查,那么就没问题了。 - h8a
听起来你需要建立更严格的“标准”来规范操作,否则这样的混乱将会越来越糟。如果像这样操作的话,怎么可能管理库存或盈亏比呢?听起来好像这不是一种“美国本土的运作方式”。 - MethodMan
@DJKRAZE 我正在处理大量历史数据以构建档案。我正在编写一个应用程序,将从数据库中提取这些数据,转换并根据用户设置的条件在网格视图中显示它们。当前和未来的数据都没问题。只有两个字段,我认为原始开发人员打算使其动态化,因为它们的性质如此。 - h8a
我已经编辑了你的标题。请参考“问题的标题应该包含“标签”吗?”,在那里达成共识是“不应该”。 - John Saunders
1个回答

0
我觉得这个脚本会对你有帮助。
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'

从数据库中获取的数据表无法修改吗? - h8a
当然,您可以修改它并从该表中显示任何您想向用户显示的内容。 - NNassar
你有一个简单的解决方案吗?我可以删除重复项,但在此之前,我想将垃圾重复项重命名。你知道怎么做吗? - h8a

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接