gpt4 book ai didi

mysql - 如何在应用程序仍打开时将 .mdf 和 .ldf 文件从一个位置复制到另一个位置?

转载 作者:行者123 更新时间:2023-11-29 19:23:10 25 4
gpt4 key购买 nike

我创建了一个使用 SQL 数据库存储和查询数据的应用程序。一切都很好,但问题是备份,经过大量搜索,我发现了两种备份方法。首先,使用命令“使用[数据库名称]备份数据库[数据库名称]到磁盘='[备份位置]'。但这种方法的问题是需要在磁盘上安装SSM软件机器,但我不希望安装它,因为它允许用户比他需要的数据库文件有更多的控制权,所以如果有人能给我解决方案,那将非常有帮助。第二种方法是复制.mdf 文件和 .ldf 文件,但问题是我无法直接从应用程序复制这些文件,甚至无法在应用程序打开时间接复制这些文件,并且只有当我们关闭应用程序时才能复制这些文件,但我不希望这样和我的主文件问题集中在这个问题上。

我的问题。如何使用 VB.Net 编码直接从应用程序将这些文件从默认位置复制到备份位置而不关闭它?是否有办法关闭与这些文件的连接?

注意:我尝试了 Connection.Close()Connection.Dispose()

最佳答案

好吧,在回答问题之前,让我先说几句话,我们大多数人都知道并且在许多网站上看到过,第二种方法(复制 .mdf 和 .ldf 文件) 是最不安全的方法并可能导致严重的问题,第一种方法(使用 Transact-SQL 进行备份/还原) 是更可取、更方便的方法,也是更安全的方法。但我想很多人(特别是像我这样的初学者)会对查询 use [DatabaseName] Backup database [DatabaseName] To Disk='[Backup Location]' 遇到问题,因为数据库由两个文件组成(.mdf 和 .ldf)那么这两个文件如何与此代码一起使用。我找到的解决方案是将 initial Catalog = [DatabaseName] 添加到我的 ConnectionString,检查以下代码:

Dim connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + My.Settings.DBLocation + ";initial catalog=InvoiceDB;Integrated Security=True"

Sub Backup_Click()
With SaveFileDialogue2
.Title = "Select Backup Location"
.Filter = "BAK File Only|*.bak"
.FileName = "Backup " + Format(Now.ToString("dd MMM yyyy"))
If SaveFileDialogue2.ShowDialog = DialogResult.OK Then
If .FileName <> "" Then
Dim BackupQuery As String
BackupQuery = "Backup database [DatabaseName] To Disk='" + .FileName + "'"
Using conn As New SqlConnection(connectionString)
Using comm As New SqlCommand()
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = BackupQuery
End With
Try
conn.Open()
comm.ExecuteNonQuery()
MsgBox("Backup Completed!", MsgBoxStyle.OkOnly, "Successful")
conn.Close()
Catch ex As SqlException
MessageBox.Show(ex.Message.ToString(), "Error Message")
Finally
conn.Dispose()
End Try
End Using
End Using
End If
End If
End With

End Sub

瞧,它成功了!因此,如果其他人也遇到同样的问题,您可以尝试这个......

注意:将 [DatabaseName] 更改为您的数据库名称,并删除“[ ]”。我将此答案添加到另一个问题中,因为它们很相似,因此您可以关注任何人。 Click Here转到另一个问题。

关于mysql - 如何在应用程序仍打开时将 .mdf 和 .ldf 文件从一个位置复制到另一个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42315280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com