【发布时间】:2014-11-04 09:55:55
【问题描述】:
我的情况如下:
我必须修补设计非常糟糕的应用程序中的问题。在代码中,之前的开发者从 DB 中获取信息并将其放入 DataTable 中。然后,他在这个数据表的一个字段上设置了Primary Key。
但是,PK列是varchar类型,出现如下错误:
这些列目前没有唯一值。
这是因为在数据中,我有:
123b
123B
数据表的这些值似乎相同,但并不完全相同。
是否有任何快速而肮脏的解决方法来避免这个问题,比如CaseSensitive = False
PS:我已经看到 this question 和 this one,但我想避免重新创建整个应用程序...
我知道我应该创建一个标识列并将其设置为 PK,但是有很多附带问题,只有在找不到快速解决方案时才会这样做。
仅供参考,数据表是这样构造的:
Dim dataColumn As New DataColumn(ucStatus.CheckColumnKey, GetType(Boolean))
dataColumn.DefaultValue = False
dataColumn.AllowDBNull = False
sourceInt.Columns.Add(dataColumn)
sourceInt.Columns(dataColumn.ColumnName).SetOrdinal(0)
sourceInt.PrimaryKey = New DataColumn() {sourceInt.Columns(MyColumn)}
最后一行有问题,MyColumn 列包含有问题的数据。
代码在 VB.NET 中,但接受 C# 答案!
感谢您的帮助
【问题讨论】:
标签: .net datatable unique primary-key uppercase