Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
galileopro
Пробующий
184 / 97 / 10
Регистрация: 28.04.2009
Сообщений: 1,104
1

SQL Server Compact пересоздать базу данных

07.10.2010, 03:39. Просмотров 3576. Ответов 1
Метки нет (Все метки)

Есть приложение Win Forms .NET использующее базу данных на MS SQL Server Compact 3.5. Язык написания приложения - C#. В ходе работы этого приложения нужно создавать базу данных, сохранять копию БД на HDD, удалять текущую БД, и заново создавать новую БД.
Копию я делаю так
C#
1
2
3
4
5
6
7
8
9
10
11
12
 // исходная база данных
            string sourceDB = "oldBD.sdf";
            // сжатая база данных
            string destDB = "newdb.sdf";
            SqlCeEngine engine = new SqlCeEngine(@"Data Source = " + sourceDB);
            try
            {
                engine.Compact(@"Data Source = " + destDB);
                engine.Dispose();
            }
            catch { }
            finally { engine.Dispose(); }
, но как написать код удаления текущей БД, создания новой не знаю. Еще нужно уметь восстановить БД из .sdf файла, хранящегося на диске (backup).

Разобрался. Как сказано тут
Чтобы создать резервную копию базы данных, закройте все подключения к ней и скопируйте файл SDF.
Чтобы восстановить базу данных, скопируйте файл SDF обратно в его обычное рабочее расположение. Операция будет корректной, даже если база данных настроена для репликации.
Чтобы удалить базу данных, удалите файл базы данных SDF.
От себя добавлю, что код
C#
1
2
SqlCeEngine engine = new SqlCeEngine(@"Data Source = newdb.sdf");
            engine.CreateDatabase();
не создает БД, так как newdb.sdf уже существует. Но код
C#
1
2
SqlCeEngine engine = new SqlCeEngine(@"Data Source = newdb2.sdf");
            engine.CreateDatabase();
создаст новую базу данных. Создать копию старой БД, можно не только копированием файла, а и кодом, который я привел первым. Тогда БД еще немного сожмется. Еще я в своих целях часто юзаю "DELETE FROM <Имя Таблицы>" \ "DROP TABLE <Имя Таблицы>", для удаления таблиц. А затем заново их наполняю.
Может кому пригодится: здесь описан пример создания таблиц для sql Server Compact. Аналогично можно выполнить запрос удаления. Команды "DROP DATABASE" в Compact SQL нет. Поэтому прийдется удалять файл БД.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 03:39
Ответы с готовыми решениями:

Как подключить к проекту локальную базу данных SQL Server Compact 4.0
Добрый день всем Ребята подскажите как подключить к проэкту Локальную базу данных SQL Server...

Как в VS 2010 создать базу данных SQL Server Compact Edition 4.0
В списке есть только версия 3.5, но у меня установлен SQL Server Compact Edition 4-ой версии точно.

Базу SQL Server Compact Edition 4.0 нельзя выбрать в качестве источника данных в проекте
Установлен Visual Studio Ultimate 2010 SP1, SQL Server Compact Edition 4.0 и Visual Studio 2010...

Не могу создать базу данных SQL Compact
Открываю добавить новый элемент. И ничего нету! Что за ерунда? Все перерыл в интернете, ни у...

Экспорт данных в БД MS SQL Server Compact Edition
Здравствуйте, у меня такая проблема. Мне необходимо создать приложение которое использует...

1
StudAssistant
Эксперт
34811 / 27003 / 5019
Регистрация: 17.04.2006
Сообщений: 49,622
07.10.2010, 03:39
Закажите контрольную, курсовую, диплом или любую другую студенческую работу здесь.
1
Max-xaM
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 3
01.11.2016, 13:55 2
Упала база.
У меня нет визуал студии.
Можешь сделать ЕХЕ, который восстановит любую базу по имени файла?
Имя в качестве параметра передавать.
0
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2016, 13:55

Как вообще редактировать базы данных SQL Server Compact Framework 4.0
Стояла 2012 студия. Там я мог создать SQL Server Compact Framework 4.0 базу данных, подключиться к...

Microsoft SQL Server Compact Edition в SQL Server Management Studio Express
Не могу понять как настроить SQL Server Management Studio Expres чтоб открывать и создавать бд sql...

SQL Server Compact Framework. Как получить из базы данных последнюю добавленную запись в таблицу
Так не работает. Вообще исключение появляется, что не знает SQL такой функции internal...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru