Как создать базу данных SQL Server программно в C # - PullRequest
1 голос
/ 09 сентября 2011

Я хочу создать программу, которая будет использовать базу данных SQL Server 2008. Во время первого запуска я хотел бы открыть окно, в котором пользователь может создать базу данных. Это будет просто, текстовые поля с именем и IP-адрес компьютера базы данных для установки и кнопку «Перейти».

Программа будет в WPF .NET4. И база данных будет в локальной сети.

Не могли бы вы предложить мне хорошее решение? Это хорошая практика программирования, чтобы сделать это? Или, может быть, я должен просто прикрепить сценарий SQL?

Я провожу исследование, я нашел эту статью: http://www.codeproject.com/KB/tips/CreateSQLDV.aspx

Но, во-первых, в SQL Server 2008 нет Microsoft.SqlServer.SmoEnum.dll. Итак, когда я делаю подобное окно «создания данных», но для SQL Server 2008 (используя, возможно, другие библиотеки DLL) - оно не будет работать для SQL Server 2005. А может быть, не будет работать с другими версиями SQL Server 2008 для? Я не знаю .. Пример из codeproject выглядит хорошо, но я не уверен.

Я хотел бы сделать гибкую программу.

Ответы [ 3 ]

2 голосов
/ 09 сентября 2011

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

Мой подход был бы таким:

  • с вашей установкой, отправьте пустую базу данных «по умолчанию», которая имеет вашу базовую структуру (все ваши таблицы и все остальное) и, возможно, также некоторые базовые данные поиска в определенных таблицах

  • когда пользователь указывает, что у него нет базы данных для вашего приложения, скопируйте файлы MDF / LDF / и, возможно, NDF в расположение данных SQL Server

  • программно присоединить эти файлы базы данных к экземпляру SQL Server

Это кажется более понятным и гибким подходом.

1 голос
/ 09 сентября 2011

Я бы избегал SMO.

Это зависит от LOT от вашей аудитории и вашего контроля над ожидаемой средой, но при подключении готовых баз данных, хотя и удобная опция, иногда могут возникать проблемы - для началаэто бинарный файл под управлением исходного кода, так что вы не получаете различий бесплатно в вашей системе контроля версий.Кроме того, вы присоединяете базу данных с определенными параметрами и вещами, которые могут не подходить для конкретной целевой среды - SQL Server 2005, SQL Server 2008, SQL Server 2008 R2?Помимо всего прочего, это правильный подход, аналогичный тому, как можно было развертывать приложения Access в прошлом.

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

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

1 голос
/ 09 сентября 2011

Создание базы данных не обязательно должно быть частью вашего кода как такового.Особенно, если вам нужно создать базу данных только один раз.Я предлагаю подход, при котором вы создаете установщик с помощью установщика Windows или Inno Setup (я предпочитаю Inno Setup).С помощью установщика вы можете запросить у пользователя имя сервера SQL и учетные данные для входа в систему для администратора.Затем вы можете использовать их для запуска сценария SQL, содержащего ваши операторы CREATE DATABASE и CREATE TABLE, и так далее.Надеюсь это поможет.

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