Я нахожусь в следующей ситуации:DataTable случае чувствительные символы на первичный ключ
Я должен исправить проблему в очень плохо разработанной применения. В коде предыдущий разработчик получает информацию от БД и помещает его в DataTable
. Затем он устанавливает Primary Key
на поле этого datatable.
Однако колонна PK является VARCHAR типа, и у меня есть следующее сообщение об ошибке:
Эти столбцы в настоящее время не имеют уникальные значения.
Это происходит потому, что в данных, у меня есть:
123b
123B
Кажется, эти значения одинаковы для DataTable, в то время как они не являются точно такими же. Есть ли быстрый и грязный обходной путь, чтобы избежать этой проблемы, как CaseSensitive = False
PS: Я уже вижу this question и this one, но я хотел бы избежать, чтобы воссоздать все приложение ...
Я знаю, что я должен создайте столбец идентификатора и установите его как PK, но есть много проблем с обеспечением, и я сделаю это, только если не найду быстрое решение.
FYI, то DataTable сконструирован так:
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# принят!
Спасибо за вашу помощь