Резервное копирование SQL Server из VB.NET не создает файл резервной копии, файл не отображается на диске - PullRequest
0 голосов
/ 06 июня 2019

Я использую VB.NET с SQL Server 2012 Express в программном обеспечении.

Я предоставил средство для резервного копирования базы данных из самого приложения со следующим кодом

Dim con = New SqlConnection("Data Source=.\SQLEXPRESS;Database=Master;User id=sa;password=admin;")
con.Open()
Dim str as string="backup database OFFICEMANAGEMENT to disk='C:\OM.bak'"
Dim cmd as new SqlCommand(str,con)
cmd.ExecuteNonQuery
con.Close()

Когдаприведенный выше код выполняется, файл резервной копии не создается, а также не отображается ошибка.

Если я запускаю команду backup с T-SQL в SQL Server Management Studio, файл резервной копии будет успешно создан.

Кто-нибудь может помочь с этим?

Спасибо

1 Ответ

0 голосов
/ 06 июня 2019

Вы должны изменить свой код следующим образом

  1. Ваше соединение должно быть открыто перед выполнением команды.
  2. Оператор T-SQL для резервного копирования базы данных должен содержать ключевые слова WITH INIT. Если вы выполняете свой код несколько раз, ваш файл BAK будет продолжать расти.

    Итак, попробуйте это

    Using con = New SqlConnection("Data Source=.\SQLEXPRESS;User id=sa;password=admin;")
    
        con.Open()
    
        Dim str As String = "backup database OFFICEMANAGEMENT to disk='C:\TMP\OM.bak' WITH INIT"
    
        Using cmd = New SqlCommand(str, con)
            cmd.ExecuteNonQuery()
        End Using
    
        con.Close()
    
    End Using
    
...