Резервное копирование SQL Server из VB.NET не создает файл резервной копии, файл не отображается на диске

Я использую 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, файл резервной копии успешно создается.

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

Спасибо


person Hemal    schedule 06.06.2019    source источник
comment
Вы никогда не открываете соединение — попробуйте con.Open() до вызова cmd.ExecuteNonQuery   -  person marc_s    schedule 06.06.2019
comment
Добавил код, но файл резервной копии все равно не создается. Он работает из TSQL в SQL Server Management Studio.   -  person Hemal    schedule 06.06.2019


Ответы (1)


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

  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
    
person Community    schedule 06.06.2019
comment
Дело не в открытии соединения, файл резервной копии все еще не создается после добавления этой строки. - person Hemal; 06.06.2019
comment
А исключений нет? Очень странно. Попробуйте изменить путь. Поместите файл резервной копии в другое место. - person ; 06.06.2019
comment
Пробовал также создавать файлы на диске D и диске E. Я сомневаюсь, что это проблема разрешения. - person Hemal; 07.06.2019