2013-04-02 35 views
3

行我目前正在與具有對於我一起工作的列中的數據沒有任何形式的檢查,第三方應用程序數據庫工作。我正在使用SqlDataReader(因爲這不需要修改數據庫中的現有表)將數據放入數據表並刪除重複項,但是當我刪除重複項時,仍然留下垃圾重複項,通過不同的人錯誤輸入數據。例如;重命名DataTable中

  • 蘋果
  • APPL
  • 香蕉
  • BANNEAN
  • BANA
  • 紅毛
  • 等...

我怎樣才能糾正他們在數據表中,因此數據表只有蘋果,橙等...

幸運的是,只有進入此列了幾個不同的項目,都開始使用不同的字符串,例如岑,CAS,所以如果我能夠改變這一切開始與App

不幸的是修改原在進入時檢查數據的程序不是一個選項。

+0

這很爛,你不能只修改檢查原'SRC'你會以某種方式承擔什麼意思用戶也許你可以添加一些'Extension'方法或'接口,這將迫使用戶驗證有入口,如果他們進入這個詞不是一個正確的字..這是一個很好的問題,這是否可能是你在找什麼http://msdn.microsoft.com/en-us/library/ms141809.aspx – MethodMan

+0

@ DJKRAZE不幸的是,第三方數據輸入應用程序完全關閉,但表格可以直接訪問。我使用應用程序數據庫中的表格以及其他應用程序的表格來生成高於兩個原始應用程序功能的自定義報告。問題在於,如果不在表單上檢查該字段,則人們會將任何接近或無關的縮寫放在該項目上。如果我可以根據表格檢查數據表格,那麼我應該很樂意去。 – h8a

+0

聽起來像你需要有一些更嚴格的'標準'到位,這必須是如此混亂,如何甚至用類似的東西管理庫存或利潤/虧損邊緣..聽起來像這不是一個「美國的基礎操作「' – MethodMan

回答

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' 
+0

是否無法修改從數據庫中提取的數據表? – h8a

+0

當然,你可以修改它並顯示你想要顯示的表格給用戶。 – NNassar

+0

你有一個簡單的解決方案來做到這一點?我可以刪除重複項,但在此之前我想重命名垃圾重複項。你知道怎麼做嗎? – h8a