以编程方式更改数据库位置

时间:2016-06-14 06:13:58

标签: sql-server database vb.net visual-studio

我使用visual basic 2010制作程序并使用sqlserver compact作为数据库。我有两个名为“Year2015”和“Year2016”的文件夹。文件夹位于程序所在的位置。两个文件夹本身都有一个名为“MyData.sdf”的数据库。两个“MyData.sdf”都有相同的表格等。我试着这样做: 当用户选择“Year2015”时,程序开始运行文件夹“Year2015”中的“MyData.sdf”数据,当用户选择“Year2016”时,程序开始运行“MyData.sdf”数据在文件夹“Year2016”中。我的意思是我想以编程方式更改数据源地址。搜索网络。有一些解释,但没有我能找到的代码。如果这是一个很抱歉的问题。

2 个答案:

答案 0 :(得分:1)

Dave Pinal是这方面的天才,我碰巧在这个主题上阅读了他的博客:

ALTER DATABASE TestDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO

- 分离数据库

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

- 将MDF文件从Loc1移动到Loc 2 - 重新附加数据库

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

注意:即使他的评论部分也很棒!

*来源PINALT来自PINAL。 http://blog.sqlauthority.com/2012/10/28/sql-server-move-database-files-mdf-and-ldf-to-another-location/

答案 1 :(得分:0)

我最终为此问题创建了自己的代码。我想为使用VB2010和SQL Server Compact的人分享它,并希望更改活动表单的数据源。代码是:

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

这将更改活动表单的数据源。其他表单继续使用默认源