2016-06-14 2 views
0

Im делает программу с визуальным базовым 2010 и использует sqlserver compact как базу данных. У меня есть две папки с именем «Year2015» и «Year2016». Папки находятся в том же месте, где находится программа. Обе папки имеют базу данных с именем «MyData.sdf» сами по себе. Оба «MyData.sdf» имеют одинаковые таблицы и т. Д. Я пытаюсь сделать что-то вроде этого: Когда пользователь выбирает «Year2015», программа запускается с данными «MyData.sdf», которая находится в папке «Year2015» », и когда пользователь выбирает« Year2016 », программа запускается с данными« MyData.sdf », которые находятся в папке« Year2016 ». Я имею в виду, что я хочу программно изменить адрес источника данных. Искал сеть для этого. Есть некоторые объяснения, но никаких кодов я не мог найти. Если это плохой вопрос, извините за это.Пограмматически изменить местоположение базы данных

+0

Я использовал sqlserver compact. Я не очень хорошо разбираюсь в базах данных. Программа не работает в Интернете. Просто получение данных из файла sdf. – user747699

+0

Вы можете использовать две строки подключения в файле app.config/web.config и использовать эту две строки подключения на основе выбора dropdown Year2015/Year2016 для получения данных из другой базы данных папок, например, если инструкция else ... –

+0

Я могу управлять, когда пользователь измените выпадающее меню и выберите Year2015 с инструкцией if else. Но я не знаю, как заставить программу начать работать с данными в папке Year 2015. Я имею в виду некоторые коды: myconnection.source = CurrentDir & «Year2015/MyData.sdf», чтобы по возможности изменить местоположение базы данных. – user747699

ответ

0

Наконец-то я создал свой собственный код для этой проблемы. Я хочу поделиться им для людей, которые используют VB2010 и SQL Server Compact и хотят изменить источник данных для активной формы. Код:

Dim sConnectionString As String 
sConnectionString = "Data Source=" & My.Computer.FileSystem.CurrentDirectory & "\Year2015\MyData.sdf" 
TableAdapterManager.Connection.ConnectionString = sConnectionString 

Это изменяет ваш источник данных активной формы. Другие формы продолжают использовать источник по умолчанию

1

Дэйв Pinal является гением в этой вещи, и мне пришлось читать его блог на этой самой теме:

ALTER DATABASE TestDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO

- Detach DB

EXEC MASTER.dbo.sp_detach_db @dbname = N'TestDB' GO

- Move MDF-файл из Loc1 в Loc 2 - Повторно подключенный DB

CREATE DATABASE [TestDB] ON (FILENAME = N'F:\loc2\TestDB.mdf'), (FILENAME = N'F:\loc2\TestDB_log.ldf') FOR ATTACH GO

Примечание: даже его разделы комментариев тоже замечательные!

* ИСТОЧНИК ИСПЫТАНИЯ ИЗ ПИНАЛА. http://blog.sqlauthority.com/2012/10/28/sql-server-move-database-files-mdf-and-ldf-to-another-location/

+0

Спасибо. Дэйв Пиналь ясно объяснил, чего я хочу. Но на другом языке программирования. Триация для изменения кодов на vb2010 express. Но каждый раз некоторые ошибки. – user747699

+0

Какие ошибки? Можете ли вы опубликовать их? –

+0

Я имею в виду, когда я пишу код Dave Pinal, но визуальный базовый подчеркивает коды, потому что он не написан на визуальном базовом языке. Я пытаюсь изменить его на vb2010 lang. Если бы я мог это сделать, это будет так приятно ... – user747699

Смежные вопросы