Visual Studio 2010 C # SQL база данных ошибка только для чтения - PullRequest
2 голосов
/ 26 мая 2011

Я работаю над проектом Visual C # с локальной базой данных SQL.Когда я устанавливаю MSI-файл и запускаю программу, а затем пытаюсь обновить что-либо в базе данных, я получаю сообщение об ошибке «Не удалось обновить базу данных C: \ setup \ DBNC.mdf, потому что база данных доступна только для чтения».время выяснить это, какие-либо предложения ??

Ответы [ 3 ]

5 голосов
/ 26 мая 2011

Я собираюсь выбить свой волшебный шар на минуту.Давайте посмотрим ...

OP создает базу данных из сценария .sql на локальном сервере?
Ответ смутный, попробуйте еще раз

Включен ли OP.mdb в пакете установки?
Вы можете положиться на него

Хорошо.Таким образом, база данных копируется в этот конкретный каталог пользователем через установочный пакет ...

Повышается ли OP до уровня администратора при запуске установочного пакета?
Outlook исправен

Хорошо, поэтому OP создает каталог и копирует туда файл во время установки, все под эгидой учетной записи администратора.

Присоединяет ли OP этот файл к локальному экземпляру Sql Server?
Знаки указывают на да

На сервере Sql сконфигурирована ли база данных только для чтения?
Ответ смутный, повторите попытку

Имеет OPзапустить ALTER DATABASE DBNC SET READ_ONLY?
Не рассчитывайте на это

Хорошо, тогда OP обновил безопасность NTFS на C:\setup\ и базу данных mdb для предоставления доступа на чтение / записьк учетной записи, на которой запущен Sql Server (NETWORK SERVICE или какая-либо другая учетная запись)?
Мои источники говорят, что нет

Bingo!

Вы создаете этот каталог как администратор и копируете туда файл.У учетной записи, на которой запущен Sql Server, нет прав на изменение файла, поэтому вы получаете эту ошибку.

Не следует развертывать базы данных в виде файлов.Вы должны создать файл .sql, который создает базу данных и все таблицы / отношения / и т.д. внутри нее.Таким образом, вы всегда уверены, что база данных доступна для экземпляра Sql Server.Кроме того, проще создать файл сценария sql, чем mdb.

1 голос
/ 22 декабря 2011

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

0 голосов
/ 26 мая 2011

Вы проверили свойства файла .mdf, чтобы убедиться, что он не только для чтения?Похоже, это может быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...