Member 12931315 Ответов: 2

Это значение нарушает ограничение maxlength этого столбца-C# visual studio 2017


Привет ,

У меня есть банковская таблица в моей базе данных sql, длина поля(столбца) под названием "Код" равна 4(chr).
Все банки находятся в загруженном поле со списком и выберите соответствующий банк на экране ввода.

Я выбираю банк из комбинированного списка в моей форме ввода, которая связана с главной таблицей сотрудников, которая имеет поле(столбец) под названием "Банк" длиной 4(chr).

все комбинированные привязки и выбор работают

когда вы нажимаете кнопку Сохранить, это дает ошибку
"Невозможно установить столбец "банк". Это значение нарушает ограничение максимальной длины этого столбца."

мой код кнопки сохранения выглядит следующим образом

частный недействительными button3_Click(объект отправителя, EventArgs в электронной)
{
этот.Утверждать();
это.masterBindingSource.Конец света();
это.masterTableAdapter.Обновление(this.timeattDataSet.master);
это.tableAdapterManager.UpdateAll(this.timeattDataSet);
это.timeattDataSet.Метод acceptchanges();
}


Пожалуйста, помогите мне

Аджит

Что я уже пробовал:

частный недействительными button3_Click(объект отправителя, EventArgs в электронной)
{
этот.Утверждать();
это.masterBindingSource.Конец света();
это.masterTableAdapter.Обновление(this.timeattDataSet.master);
это.tableAdapterManager.UpdateAll(this.timeattDataSet);
это.timeattDataSet.Метод acceptchanges();
}

[no name]

Не уверен, что вы думаете, что мы можем вам помочь. Сообщение об ошибке совершенно ясно.

2 Ответов

Рейтинг:
1

OriginalGriff

Сообщение об ошибке довольно явное:

Cannot set column 'bank'. The value violates the MaxLength limit of this column.
Колонка называется bank было определено как имеющее определенное максимальное количество символов - возможно, по умолчанию 50 - и значение, которое вы пытаетесь вставить или обновить в БД, превышает эту длину.

Мы не можем исправить это: вам нужно либо найти способ усечь или ограничить длину данных, которые вы передаете в SQL, либо изменить дизайн таблицы БД, чтобы разрешить более длинные записи в этом столбце.


Member 12931315

Привет
Спасибо за быстрый ответ,в моей главной таблице банка длина столбца количество символов равно 4, так что банк таблицы поддержки имеет такое же количество символов, почему я должен идти 50, так как кодовое значение просто похоже на это "7280", можете ли вы уточнить это.

Еще раз спасибо за помощь

Аджит

OriginalGriff

Вы этого не делаете, но то, что вы вставляете, длиннее четырех символов.
Как я уже сказал: либо найдите способ усечь или ограничить длину данных, которые вы передаете в SQL, либо измените дизайн таблицы БД, чтобы разрешить более длинные записи в этом столбце.
Если ваш банк должен состоять из четырех символов, вам нужно посмотреть на свои данные и выяснить, что именно вы кладете туда, что длиннее, а затем выяснить, почему. Мы не можем сделать это за вас - у нас нет никакого доступа к вашим данным или вашим входным данным!

Member 12931315

Привет
Спасибо за помощь,то, что я сделал, было переработано поле со списком и попробовал, и проблема возникла
решено, но я нашел еще один, хотя в режиме дизайна Visual studio он показывает
как сохраняются и переходят одна запись в другую, так и поступают данные.

но когда я выхожу из Visual studio и запускаю запрос из Microsoft sql server tool
для этой таблицы этих новых данных нет.

Есть ли у вас какие-нибудь идеи,почему это, является ли Visual studio поддерживать зеркало в рабочем каталоге

ваша помощь очень ценится

Аджит

OriginalGriff

Без вашего кода и всех ваших данных? Нет, мы не можем вам сказать.
Начните с того, как вы подключаетесь к БД. скорее всего, вы подключились не к той БД или прикрепили копию, которую VS настроил для перезаписи.

Рейтинг:
0

wjburke2

You did nothing wrong this is a common problem with Winforms combo boxes. If you look in the Form.Designer.vb, search for the control in the definition you will see two add statements comment out the first and your code should work. I have reported this issue to NSDN but it has not been fixed as of the latest release.

        'SL_OperatorComboBox
        '
        'Me.SL_OperatorComboBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Shift_LogBindingSource, "SL_Operator", True))
        Me.SL_OperatorComboBox.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.Shift_LogBindingSource, "SL_Operator", True))
        Me.SL_OperatorComboBox.DataSource = Me.OperatorsBindingSource
        Me.SL_OperatorComboBox.DisplayMember = "Name"
        Me.SL_OperatorComboBox.FormattingEnabled = True
        Me.SL_OperatorComboBox.Location = New System.Drawing.Point(158, 81)
        Me.SL_OperatorComboBox.Name = "SL_OperatorComboBox"
        Me.SL_OperatorComboBox.Size = New System.Drawing.Size(150, 21)
        Me.SL_OperatorComboBox.TabIndex = 31
        Me.SL_OperatorComboBox.ValueMember = "Initials"