备份SQL Server Compact Edition会破坏数据库

时间:2013-07-22 10:56:00

标签: vb.net sql-server-ce

在用VB编写的应用程序关闭时,我需要复制.sdf文件,这是与服务器同步的本地SQL Server CE数据库。每次我们关闭应用程序时,都需要进行备份。

我正在使用file.copy方法。首先,我关闭与数据库的连接,然后将文件复制到特定位置。

Dim conn As SqlCeConnection = New SqlCeConnection(My.Settings.MyClientConnectionString)
conn.Open()
conn.Close()

Dim tpath As String = My.Settings.CertPath 
Dim path As String = tpath.Replace("db\", "MyDatabase.sdf")
Dim fs As FileStream = File.Create(path)
fs.Close()
File.Delete("C:\db\backup\MyDatabase.sdf")
File.Copy(path, "C:\db\backup\MyDatabase.sdf")

问题出现在代码行上:

Dim fs As FileStream = File.Create(path)

数据库已损坏,大小为0 kb。

有没有人见过这个?感谢

1 个答案:

答案 0 :(得分:1)

您是否在现有数据库文件上调用了Create?根据文档,Create 在指定路径中创建或覆盖文件。在您显示的代码中,无论如何都不需要调用Create。只需调用File.Copy。