private void AddCeDatabase(DatabaseType dbType) { try { var dialog = new ConnectionDialog(); string path; if (TryGetInitialPath(package, out path)) { dialog.InitialPath = path; } dialog.DbType = dbType; dialog.ShowDdexInfo = package.VSSupportsSimpleDDEX4Provider() || package.VSSupportsSimpleDDEX35Provider(); dialog.CouldSupportPrivateProvider = (dbType == DatabaseType.SQLCE40 && (SqlCeToolboxPackage.VisualStudioVersion == new Version(12, 0) || SqlCeToolboxPackage.VisualStudioVersion == new Version(14, 0))) || (dbType == DatabaseType.SQLCE35 && package.VSSupportsEF6()); bool?result = dialog.ShowModal(); if (result.HasValue && result.Value == true) { if (!string.IsNullOrWhiteSpace(dialog.ConnectionString)) { Helpers.DataConnectionHelper.SaveDataConnection(dialog.ConnectionString, dbType, package); ExplorerControl control = _parentWindow.Content as ExplorerControl; control.BuildDatabaseTree(); Helpers.DataConnectionHelper.LogUsage("DatabasesAddCeDatabase"); } } } catch (Exception ex) { Helpers.DataConnectionHelper.SendError(ex, dbType); } }
internal static void SaveDataConnection(string connectionString, DatabaseType dbType, SqlCeToolboxPackage package) { var storeDbType = GetPreferredDatabaseType(); var helper = CreateEngineHelper(storeDbType); string path = CreateEngineHelper(dbType).PathFromConnectionString(connectionString); helper.SaveDataConnection(CreateStore(storeDbType), connectionString, path, dbType.GetHashCode()); if (package.VSSupportsSimpleDDEX35Provider() && dbType == DatabaseType.SQLCE35) { SaveDataConnection(package, connectionString, connectionString, dbType, new Guid(Resources.SqlCompact35PrivateProvider), false); } if (package.VSSupportsSimpleDDEX4Provider() && dbType == DatabaseType.SQLCE40) { SaveDataConnection(package, connectionString, connectionString, dbType, new Guid(Resources.SqlCompact40PrivateProvider), false); } }