Добавить * .mdf файл в C # Project - PullRequest
1 голос
/ 28 апреля 2011

Я использую Visual Studio 2005. Я создаю проект, а не веб-проект, просто приложение Windows.

Я помню, что файл базы данных Access можно добавить в проект.Мне не нужно подключение к серверу, данные могут быть получены.И я хочу сделать то же самое с файлом базы данных SQL.

Я сделал следующие шаги:

  1. Щелкните правой кнопкой мыши по проекту.
  2. Выберите Добавить существующийЭлемент
  3. Просмотр * .mdf файла.
  4. Появляется мастер настройки источника данных, который отображает это сообщение

    Произошла ошибка при получении информации из базы данных: Ошибкасоздать пользовательский экземпляр SQL Server из-за сбоя int при запуске процесса для пользовательского экземпляра.Соединение будет закрыто.

Мне нужна помощь, чтобы добавить файл mdf в мой проект.

Ответы [ 4 ]

7 голосов
/ 28 апреля 2011

Для начала, и файл MDF может быть прочитан только экземпляром SQL Server.Если вы развертываете MDF, ваше приложение должно либо подключиться к SQL Server, предоставленному вашим конечным пользователем во время установки, либо развернуть свой собственный экземпляр, в последнем случае экземпляр SQL Server Express Edition.См. Как: установить SQL Server Express .В Visual Studio 2008 вы можете добавить предварительное условие для настройки MSI своего приложения, см. «Установка» загрузчика ClickOnce SQL Server 2008 Express для Visual Studio 2008 SP1 .

Вторая проблема заключается вНесмотря на широкое убеждение об обратном, распространение MDF в одиночку без LDF может привести вас в мир боли.Вы можете в итоге раздать несовместимый MDF, которому нужен LDF, чтобы завершить восстановление и войти в согласованное состояние.

Но более серьезной проблемой является ваш план развертывания двоичных файлов (MDF) вместо сценариев для развертывания базы данных.Это обречено на провал.Как только вы планируете выпустить v. 1.1 своего приложения, вы столкнетесь с нетривиальной проблемой замены пользовательского MDF (который теперь содержит данные, добавленные пользователем) на новый MDF.Вот почему гораздо лучше всегда развертывать сценарии обновления и забывать о MDF в своем проекте.

1 голос
/ 28 апреля 2011

Вы можете читать из файла Access (* .mdb) в вашем приложении без каких-либо других требований, потому что ядро ​​Jet, используемое Access, включено как часть Windows - оно встроено. Sql Server не включен как часть Windowsи поэтому вы не можете использовать файл * .mdf в своем приложении, если Sql Server не установлен и у вас нет соответствующих разрешений для него.

Можно распространять либо Sql Server Express Edition, либо Sql Server Compact Edition (рекомендуется) с вашим приложением.Другой вариант - SqlLite, который имеет полностью управляемое ядро ​​базы данных.

0 голосов
/ 04 июля 2013

Для решения проблемы развертывания (обновленная версия вашего файла .mdf и кода) в вашем приложении может быть установлена ​​утилита, которая может создавать файл .xls для каждой таблицы (резервное копирование базы данных), которую вы использовали в своем приложении.Теперь вы можете легко импортировать этот файл .xls в SQL Server, создать новую версию файла .mdf и прикрепить тот же файл в последнем коде. Теперь новый выпуск вашего приложения готов к развертыванию ..!

0 голосов
/ 28 апреля 2011

.MDF - это база данных SQL Server, а не MS Access.Доступ MS - .MDB.Вы не можете прочитать .MDF самостоятельно.Также необходим файл журнала (.LDF).Если вы присоедините его к локальному экземпляру, он создаст новый для вас.Затем вы можете подключиться к этой БД.

...