Прикрепление поведения базы данных SQL - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать файл setup.exe, который устанавливает написанное мной приложение.

Приложение использует базу данных для хранения и извлечения информации.

В настройке у меня естьУстанавливающий пользователь предоставляет сервер базы данных \ экземпляр, учетные данные и каталог DATA для копирования файлов базы данных.

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

Я использую следующее для программногоприкрепить базу данных к моему экземпляру.Con.Open () и con.Close () предназначены только для тестирования.

System.Data.SqlClient.SqlConnection con;
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;Integrated Security=true;Connect Timeout=30;User Instance=True";

ServerConnection serverconn = new ServerConnection(con);        
Server s = new Server(serverconn);
s.DetachDatabase("DBX2", true, true);
s.AttachDatabase("DBX2", new System.Collections.Specialized.StringCollection { @"C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\DBX2.mdf", @"C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\DBX2_log.ldf" }, AttachOptions.None);

con.Open();
MessageBox.Show("Connection Opened");
con.Close();
MessageBox.Show("Connection Closed");

Несколько вопросов для подтверждения:

  1. Я получаю сообщение об ошибке, что оноуже открыт, когда он пытается con.Open (), поэтому присоединение базы данных таким способом автоматически открывает?Когда я удаляю con.open (), он пробегает и закрывает его очень хорошо.

  2. Когда я присоединяю свою базу данных таким образом, я не вижу ее прикрепленной в SQL Server Management Studio, как если бы я должен был прикрепить ее туда вручную.Итак, база данных по-прежнему подключена и работает после выхода из приложения, чтобы другие приложения могли получить к ней доступ?Является ли этот способ временным или просто не подхвачен SQL Management Studio?

  3. Это правильный путь для достижения того, чего я хочу?

1 Ответ

2 голосов
/ 06 марта 2019

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

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