Ошибка возникает, когда я пытаюсь заполнить набор данных datasable.Ошибка DataAdapter: столбец превышает предел MaxLength
ds = dsMyDataset;
sqlAdapter.Fill(ds, dsMyDataset.MyTable.TableName); // Uses the SQLAdapters 'select command'
На заливку, я получаю эту ошибку:
Дополнительная информация: «Не удалось включить ограничения. Одна или несколько строк содержат значения, нарушающие непустые, уникальные или внешние ключи.
я запустить эту команду в окне командной строки:
dsMyDataset.MyTable.GetErrors()[0].RowError
И сообщает мне, что «Колонка„XMLHistory“превышает предел MaxLength.»
Нечетный, поскольку в свойстве длины набора данных задается длина '2147483647' для этого поля.
Так что в моем sqladapter уточняю размер:
sqlComm.Parameters.Add("@XMLHistory", SqlDbType.Text, 2147483647, "XMLHistory");
Но это, видимо, не помогает мой вопрос вне. Также заметил, что размер в БД для этого столбца равен «16».
Теперь вот странная вещь, которую я заметил. То, что эта программа позволяет мне делать, - это архивные данные из одной базы данных в другую. Поэтому у меня есть список таблиц, которые пользователь может выбрать из архива. Что странно в том, что если я выберу одну таблицу, она будет архивировать просто отлично. Эта проблема, как я уже упоминал выше, фактически не запускает до после первых архивов таблиц, и система пытается перейти ко второй таблице. В тот момент, когда он пытается заполнить DS, booooom. Мертв.
Любые предложения/мысли оценены. Приветствия.
Я думаю, что проблема не в максимальной длине SQL-параметра, а в максимальной длине столбца в базе данных. Какую базу данных вы используете? Вы говорите, что максимальная длина столбца в БД равна 16, вы можете сделать это больше? –
SQL Server. Я думаю, что было бы странно, если бы длина в sql-сервере была проблемой, потому что, если я выбираю одну таблицу для архивирования, она делает это просто отлично. И я подтвердил, что все параметры настройки размера одинаковы во всех БД в настоящее время. –
Если первый преуспевает, тогда кажется, что это проблема «уникального» ограничения. Или у данных во второй таблице есть проблема. – Loathing