2016-06-18 5 views
0

Я опубликовал веб-приложение, оно работает на лазурном. Проект веб-приложения, который я тестировал на своем компьютере (localhost), а затем в веб-приложении. Когда я тестировал, чтобы создать новую строку с данными (например, новый человек на PersonTable) Он работал на моем локальном хосте, но когда я тестировал веб-приложение опубликовано он выдает эту ошибку:Невозможно вставить значение NULL в столбец, таблицу; Столбец не допускает null ... Но этот столбец является Первичным ключом и имеет свойство автоинкремента

Cannot insert the value NULL into column 'ID_ANTEC_PERS', table 'Telejdb.dbo.ANTECEDENTES_PERSONALES'; column does not allow nulls. INSERT fails. The statement has been terminated.

этот столбец (ID_ANTEC_PERS) это идентификатор этой таблицы (ANTECEDENTES_PERSONALES), но я установил для этого столбца свойство identity (1,1) на моей базе данных SQL-сервера. Когда я работал над этим проектом на своем компьютере (localhost), у меня не было таких проблем, я думаю, это потому, что проект знал последовательность этого свойства auto increment. Но теперь, как только веб-приложение опубликовано и работает на azure, мне захотелось увидеть код моего проекта, но я понял, что он был скомпилирован на .dll-файлах. Поэтому я не могу редактировать проект веб-приложения. Любая помощь? Руководство? Предложения? Буду признателен.

Заранее спасибо

ответ

1

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

идентификатора должен быть значением инкрементации.

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

Чтобы настроить автоматическое приращение в SQL Server Management Studio:

Open your table in Design
Select your column and go to Column Properties
Under Indentity Specification, set (Is Identity)=Yes and Indentity Increment=1

в локальной, если вы не получаете эту проблему означает, что вы должны обновить

azure database

+0

Ok Midhum, я тестировал добавление еще одной строки в таблицу на моем локальном, и я не испытываю никаких проблем. Проблема заключается в том, когда я пытаюсь добавить новую строку в базу данных azure (мое опубликованное веб-приложение связано с лазурным sql-db) по форме в веб-приложении, но я проверю, что вы сказали мне сделать, и я скажу вы, что я нашел.Благодаря ответу – Anargu

+0

Я проверил свойства этого столбца, и все установлено правильно: оно распознает свойство identity (1,1), значение параметра (isTetetity) установлено True, а значение Идентичности равно 1. Но поскольку это первичный ключ, он имеет свойство null. У меня нет четкого объяснения, почему эта проблема возникает из-за того, что на моем локальном компьютере работает нормально, но в веб-приложении это не – Anargu

+0

Я искал доступ к этой базе данных с помощью SSMS, и я выяснил свойство ID всех таблицы, которые я установил Identity (1,1), просто они не имеют этого свойства. На самом деле у меня тоже есть локальная БД, поэтому я сравнил свойства обоих БД (локальный и лазурный db). Возможно, это была моя ошибка, когда я импортировал свой локальный db в azure db, возможно, я сделал это неправильно, я точно 't know – Anargu

0

Наконец-то я мог бы решить эту проблему , проблема заключалась в том, что у моих лазурных таблиц DB не было свойства идентификатора (автоинкремент), поэтому в таблице был PK, но у него нет своего идентификационного свойства.

Что случилось?

Когда я попытался импортировать свою локальную БД (все ее таблицы имеют свойство идентификации) в azure DB, я не использовал неизвестный метод (я использовал задачу SSMS: Задача> Экспорт данных ...) Это могло бы импортировать все таблицы, PK Constraints и все данные, но не импортирует все свойства идентификации.

Как это исправить?

Что я сделал, чтобы решить проблему, было импортировать мою базу данных снова, но на этот раз правильным образом: импортирование моего локального db в azure db с помощью файла bacpac (база данных azure распознает этот файл резервной копии).

На самом деле, прежде чем я использовал метод для импорта моей БД, который я использовал, я попытался импортировать свой db, импортировав файл bacpac, но я не мог, потому что использовал SSMS 2014 и исследовал другие вопросы, связанные с stackoverflow, которые я выяснил, t сделать файл bacpac с SSMS 2014 (у меня была проблема с кластерным индексом), но я могу сделать это с помощью SSMS 2016, поэтому я установил его, и, наконец, я смог создать файл bacpac, а затем я мог бы импортировать его на свой лазурный db и у него было свойство идентификации