Как создать SQL server 2016 localdb с помощью кода C#?
SQL Server 2016 LocalDB установлен, а экземпляр 'FFw1a' создан и запущен:
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>sqllocaldb i Ffw1a Name: FFw1a Version: 13.0.2151.0 Share name: Owner: MinKyung\icey.dong Auto Create: No Status: Running Start Time: 2017/3/3 16:48:38 Pipe name: np:\\.\pipe\LOCALDB#E10BE0E6\tsql\query
Я хочу создать локальный файл БД с помощью приведенного ниже кода C# :
private void CreateDatabase() { System.Data.SqlClient.SqlConnection tmpConn; string sqlCreateDBQuery; tmpConn = new SqlConnection(); tmpConn.ConnectionString = @"Data Source=(LocalDB)\FFw1a;AttachDbFilename='D:\y\2\TestDB_Data.mdf'; Integrated Security=True;Connect Timeout=30;Encrypt=False"; sqlCreateDBQuery = "CREATE DATABASE TestDB ON PRIMARY "+ @"(NAME = TestDB_Data, FILENAME = 'D:\y\2\TestDB_Data.mdf', SIZE = 2MB, FILEGROWTH = 10%) "+ @"LOG ON (NAME = TestDB_Log, FILENAME = 'D:\y\2\TestDB_Log.ldf', SIZE = 1MB, FILEGROWTH = 10%)"; SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, tmpConn); try { tmpConn.Open(); myCommand.ExecuteNonQuery(); MessageBox.Show("Database has been created successfully!", "Create Database", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (System.Exception ex) { MessageBox.Show(ex.ToString(), "Create Database", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { tmpConn.Close(); } return; }
Но это вызывает исключение на 'tmpConn. Open ()', и сообщение:
Попытка прикрепить базу данных с автоматическим именем для файла D:\y\2\TestDB_Data.mdf не получилось. База данных с таким же именем существует, или указанный файл не может быть открыт,или он находится на общем ресурсе UNC.
Как я могу изменить строку подключения и sqlCreateDBQuery, чтобы успешно создать файл базы данных?
Что я уже пробовал:
private void CreateDatabase() { System.Data.SqlClient.SqlConnection tmpConn; string sqlCreateDBQuery; tmpConn = new SqlConnection(); tmpConn.ConnectionString = @"Data Source=(LocalDB)\FFw1a;AttachDbFilename='D:\y\2\TestDB_Data.mdf'; Integrated Security=True;Connect Timeout=30;Encrypt=False"; sqlCreateDBQuery = "CREATE DATABASE TestDB ON PRIMARY "+ @"(NAME = TestDB_Data, FILENAME = 'D:\y\2\TestDB_Data.mdf', SIZE = 2MB, FILEGROWTH = 10%) "+ @"LOG ON (NAME = TestDB_Log, FILENAME = 'D:\y\2\TestDB_Log.ldf', SIZE = 1MB, FILEGROWTH = 10%)"; SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, tmpConn); try { tmpConn.Open(); myCommand.ExecuteNonQuery(); MessageBox.Show("Database has been created successfully!", "Create Database", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (System.Exception ex) { MessageBox.Show(ex.ToString(), "Create Database", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { tmpConn.Close(); } return; }