我想制作我的 SQL Server localdb 資料庫的備份副本。我嘗試使用此代碼:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim Sfd As New SaveFileDialog() With {
.Filter = "Backup file | *.bak",
.FileName = ""
}
If Sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Cursor = Cursors.WaitCursor
Dim dbname As String = "RestoDB.mdf"
Dim sql As String = "Backup database [" System.Windows.Forms.Application.StartupPath "\RestoDB.mdf] To DISK = '{Sfd.Filename}'"
Dim cmd As New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
MsgBox("Backup complete")
Cursor = Cursors.Default
End If
End Sub
我收到一個錯誤提示
不存在。確保正確輸入名稱。
這是連接字串:
Private con As New SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\CHAKER\Documents\RestoDB.mdf;Integrated Security=True;Connect Timeout=30")
uj5u.com熱心網友回復:
System.Windows.Forms.Application.StartupPath“C:\Users\CHAKER\Documents”不太可能(也不應該是這種情況)。
您可以做的是獲取當前用戶的檔案檔案夾并使用它來構建資料庫檔案的完整路徑:
Dim dbName As String = "RestoDB.mdf"
Dim dbFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dbFullPath = Path.Combine(dbFolder, dbName)
Dim sql = $"Backup database ""{dbFullPath}"" TO DISK = '{Sfd.Filename}'"
(我看到的示例在資料庫引數周圍使用雙引號,而不是方括號。)
但最好使用連接字串中的值:
Dim csb = New SqlConnectionStringBuilder("yourConnectionString")
Dim dbFullPath = csb.AttachDBFilename
Dim sql = $"Backup database ""{dbFullPath}"" TO DISK = '{Sfd.Filename}'"
如果連接字串存盤在一個變數中,如果需要編輯它只需要在一個地方更改。
如果您在引入字串插值之前使用的是 VB 版本,則可以使用
Dim sql = String.Format("Backup database ""{0}"" TO DISK = '{1}'", dbFullPath, Sfd.Filename)
uj5u.com熱心網友回復:
我使用此代碼進行備份
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim Sfd As New SaveFileDialog() With {
.Filter = "Backup file | *.bak",
.FileName = ""
}
If Sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Cursor = Cursors.WaitCursor
Dim csb = New SqlConnectionStringBuilder("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\CHAKER\Documents\RestoDB.mdf;Integrated Security=True;Connect Timeout=30")
Dim dbFullPath = csb.AttachDBFilename
Dim sql = String.Format("Backup database ""{0}"" TO DISK = '{1}'", dbFullPath, Sfd.FileName)
Dim cmd As New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
MsgBox("Backup complete")
Cursor = Cursors.Default
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363738.html
標籤:sql-server 网络
上一篇:該行被覆寫而不是添加行串列視圖
