Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
Пробующий
 Аватар для galileopro
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101

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

07.10.2010, 03:39. Показов 4840. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2010, 03:39
Ответы с готовыми решениями:

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

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

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

1
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 7
01.11.2016, 13:55
Упала база.
У меня нет визуал студии.
Можешь сделать ЕХЕ, который восстановит любую базу по имени файла?
Имя в качестве параметра передавать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2016, 13:55
Помогаю со студенческими работами здесь

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

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

Как вообще редактировать базы данных 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 ce. В менеджере просто нет возможности...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru