2013-08-08 4 views
0

В настоящее время у меня есть рабочая программа, которая дает мне безобидную, но раздражающую ошибку во время выполнения. У меня есть DataGridView, который отображает выбранное содержимое таблицы SQL, которое в настоящее время содержит только одну запись. У меня есть столбец в этой таблице под названием «Заметки», который предназначен для относительно большого пространства для хранения текстовых данных; пользователь должен иметь возможность печатать и хранить подробные заметки в одном поле текстового поля. Запись в этом столбце для моей одной записи (согласно Word) имеет длину 690 символов (с пробелами), но я получаю сообщение об ошибке при просмотре моего DataGridView, который утверждает, что столбец превышает предел MaxLength. Я вручную установил этот предел (свойство MaxInputLength) во время разработки 2147483647, что, очевидно, намного выше 690, но ошибка сохраняется.Подозрительная ошибка: столбец DataGridView превышает предел MaxLength

Я не уверен, что проблема моего DGV заключается в том, что 690 символов вряд ли имеют большой объем хранения. Может ли кто-нибудь указать мне на основную проблему с этой ошибкой? Заранее спасибо!

ответ

1

Оказывается, что виновником этой ошибки является отсутствие связи между моим набор данных программы и фактическая база данных. Когда я изначально получил ошибку, я оставил текстовые данные, которые я ввел в базу данных, изменил размер для строки в DataGridView и перестроил мою программу. Однако набор данных не обновлялся, чтобы отражать изменение размера - связь была отключена между набором данных и базой данных, поскольку ошибка уже произошла. Другими словами, набор данных не обновлялся, чтобы «защитить» себя (хотя это и не было необходимо).

Я решил проблему, восстановив свой DGV в дизайнере. Я установил для своего источника данных DGV значение none, удалил три адаптера, которые пришли с подключением, и удалил старый набор данных. После того, как все было ясно, я переделал соединение с данными (используя ту же строку соединения), и ошибка исчезла. Надеюсь, это поможет любому, кто сталкивается с тем же вопросом - эти DGV скрыты.

0

при создании столбца «Примечания», какой тип вы указали для его использования.
Я лично использую varChar(maxStringLenth)

Кроме того, чтобы иметь возможность более эффективно помочь вам вы можете предоставить некоторую дополнительную техническую информацию о вашем DataGrid и DataBase

+0

Столбец - это varchar (5000), который также должен быть намного более чем достаточно. Я пошел дальше и изменил его на максимальный, что говорит SQL Server 8000, и ничего не изменилось. Я использую связанный набор данных для заполнения DGV, и я использую его как часть функции поиска информации моей программы. Было ли что-то еще, что вы хотели знать? Я записал все, что, по моему мнению, имеет отношение к проблеме – Arch

+0

Могу ли я спросить, можете ли вы отредактировать сообщение и добавить часть кода. Также вы использовали мастер источника данных, используете ли вы вызовы SQL? –

1

Перейдите к набору данных и измените свойство maxLength полей. Это вручную отменяет устаревшую информацию набора данных. Это не требует потери конфигурации таблицы.

+0

Действительно Спасибо, что ты спас мне жизнь –

Смежные вопросы