Как создать базу данных и заполнить ее во время установки - PullRequest
3 голосов
/ 05 марта 2009

Я хотел бы найти способ создания и заполнения базы данных во время настройки asp.net.

Итак, что я хочу сделать, это:

  1. Создать базу данных во время установки
  2. Заполните базу данных некоторыми исходными данными (коды стран или что-то в этом роде)
  3. Создайте соответствующую строку подключения в файле конфигурации

Я использую .NET 3.5 и Visual Studio 2005 , а база данных - SQL Server 2005.

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

Ответы [ 4 ]

3 голосов
/ 05 марта 2009

Если вы создаете установщик, я уверен, что есть способ сделать это, но я не настолько знаком с этим.

В противном случае вы можете сделать следующее.

  1. Добавьте обработчик application_start в Global.asax, проверьте правильность строки подключения, если она не существует, перейдите к шагу два.
  2. Вход на сервер с использованием строки подключения по умолчанию
  3. Выполните необходимые сценарии для создания базы данных и необходимых объектов.
  4. Обновите web.config с информацией о соединении

Ключ здесь определяет, какая строка подключения «по умолчанию». Возможно второе значение конфигурации.

2 голосов
/ 05 марта 2009

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

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

  • Создать базу данных
  • Создание таблиц и других объектов уровня базы данных во вновь созданной базе данных
  • Заполнить данные

Ваши сценарии позаботятся обо всем этом, хотя. У вас будет команда CREATE DATABASE, соответствующие команды CREATE SCHEMA, CREATE TABLE, CREATE VIEW и т. Д., А затем, после построения схемы, соответствующие операторы INSERT для заполнения данных.

Обычно я разбиваю это на несколько сценариев, но YMMV:

  • Создать скрипт схемы
  • «Обычные сценарии» (один для эквивалента aspnet_regsql для веб-проектов, один с созданием таблиц и протоколов журналов Enterprise Library)
  • Создать скрипт хранимой процедуры, если необходимо (выполняется после создания схемы)
  • Заполнить исходный скрипт данных

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

При написании сценариев обязательно используйте соответствующие проверки безопасности (IF EXISTS и т. Д.) Перед созданием объектов. И я склонен делать мои транзакции тоже.

Удачи!

1 голос
/ 06 марта 2009

Если вы можете использовать Linq to Sql, то это легко.
Просто импортируйте всю свою базу данных в конструктор Linq to Sql. Это создаст объекты, которые описывают все объекты в вашей базе данных, включая производный класс System.Data.Linq.DataContext, который инкапсулирует всю настройку базы данных.

Теперь вы можете вызвать DataContext.CreateDatabase () для создания базы данных.

Смотрите здесь дополнительную информацию .

1 голос
/ 06 марта 2009

Ну, на самом деле я нашел учебник по MSDN: Пошаговое руководство. Использование настраиваемого действия для создания базы данных при установке

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

...