BobbyStrain Ответов: 2

Закрепить обязанности и достижения навигатор база данных добавить запись


У меня есть форма окна С #, содержащая подробное представление и сетку данных. Добавление записи работало нормально, но внезапно перестало работать. При правильной работе нажатие кнопки добавления приведет к вставке -1 и т. Д. В поле идентификатора, для которого задан автоматический номер. Теперь номер не появляется, и данные не сохраняются обратно в базу данных. Я могу ввести число, и запись сохранится. Я использую MySql, а вставка записей и автоматическая нумерация отлично работают при использовании Workbench. Форма создана с помощью VS 2010 Professional, поэтому генерируется много кода. Где искать поврежденный код? У меня есть аналогичная форма Windows, подключающаяся к другой базе данных, и она продолжает работать правильно.
Спасибо вам за помощь. Я действительно не хочу перестраивать форму с нуля.

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

Я искал что-нибудь очевидное, но безуспешно. И я восстановил форму, но безуспешно. Безрезультатно перешел с .net 4 на 3.5.

2 Ответов

Рейтинг:
2

BobbyStrain

Я нашел ответ. Совсем простой. С помощью конструктора наборов данных Visual Studio можно задать свойства для каждого из столбцов. Интересующим вас свойством является автономер. Каким-то образом я нечаянно поставил его на ложь. Изменено на true, перекомпилировано, и все хорошо. Восстанавливаю веру в Microsoft. Спасибо.


Рейтинг:
0

Dave Kreskowiak

Поле ID не должны быть доступны пользователю. Он также не должен иметь значения -1, если только ваш код не знает, что делать с этим значением. Если вы добавляете записи в таблицу, она вообще не должна иметь значения, чтобы база данных могла сама назначить значение идентификатора.

Что касается того, где искать, то это полностью зависит от вашего кода. Мы его не видим и ничего о нем не знаем, так что сказать практически невозможно.


BobbyStrain

На самом деле я не программист, поэтому использую Visual Studio; перетаскивайте и заполняйте шаги мастера. VS генерирует тонны кода в файле конструктора. Я предполагаю, что где-то там провода пересеклись или код нестабилен. Насколько я помню, скомпилированный код работал нормально. Теперь тот же самый файл имеет такое странное поведение. Есть ли простой способ построить приложение без всего сгенерированного кода?

Dave Kreskowiak

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

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

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