Дублирующая ошибка после вставки строк в таблицу, для полей которых есть INDEXED (DUPLICATES OK) - PullRequest
0 голосов
/ 01 июня 2018

Вот мой стол.Два индексированных столбца со свойством Indexed, установленным на Да (Duplicates OK) My table

Просто так: DUPLICATES OK!!!!

Но когда я пытаюсь вставить строки, используя этот код в c# winforms, следующим образом:

string query = "INSERT INTO Complaints(SickLeaveId, ComplaintId) " +
                "VALUES(14, 4)";
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        using (OleDbCommand command = new OleDbCommand(query, connection))
        {
            connection.Open();
            command.ExecuteNonQuery();
            }
        }

Я получаю следующее:

System.Data.OleDb.OleDbException: 'Запрошенные вами изменения в таблице не увенчались успехом, поскольку они могут создатьповторяющиеся значения в индексе, первичном ключе или отношении.Измените данные в поле или полях, которые содержат повторяющиеся данные, удалите индекс или переопределите индекс, чтобы разрешить повторяющиеся записи, и повторите попытку. '

Буду очень признателен за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Я только что попытался создать таблицу, подобную вашей, и я установил два столбца с двумя НЕ УНИКАЛЬНЫМИ индексами.Один в первом столбце и один во втором столбце.

Другие индексы или первичный ключ не определены .В этом контексте ваш код без проблем вставляет много одинаковых записей.Так что проблема в другом месте определения вашей таблицы

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

0 голосов
/ 01 июня 2018

В соответствии с исключением Вы нарушаете индекс или первичный ключ таблицы, поэтому попробуйте сгенерировать сценарий создания таблицы, чтобы обеспечить все ограничения в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...