2015-12-25 1 views
0

У меня есть локальная база данных SQL Server. Каждый раз, когда я хочу взять резервную копию, возникает исключение, я не знаю, как с этим справиться - пожалуйста, помогите мне!Локальное исключение резервного копирования SQL Server в vb.net

Вот мой код:

Public Function DBBackUp(DB_Address As String, Bckup_Address As String) As Boolean 
     Try 
      Dim ComStr As String = "BACKUP DATABASE [" & DB_Address & "] TO DISK = N'" & Bckup_Address & _ 
         "' WITH NOFORMAT, INIT, NAME = N'MData" & _ 
         "-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 " 
      MyConnection = New SqlConnection(strConnection) 
      MyCommand = New SqlCommand(ComStr, MyConnection) 
      If MyConnection.State = ConnectionState.Closed Then MyConnection.Open() 
      MyConnection.ChangeDatabase("Master") 
      SqlConnection.ClearAllPools() 
      MyCommand.ExecuteNonQuery() 
      Return True 
     Catch ex As Exception 
      MsgBox("An Error Occurred." & vbCrLf & ex.Message) 
      Return False 
     Finally 
      MyCommand.Dispose() 
      If MyConnection.State = ConnectionState.Open Then MyConnection.Close() 
     End Try 
    End Function 

Исключение сообщение:

Время ожидания истекло. Период ожидания до истечения операции или сервера не отвечает. Резервное копирование или восстановление было прервано. 10 процентов обработано. 20 процентов обработано. 30 процентов обработан. Обработано 40 процентов. 50 процентов обработано. 60 процентов обработано.

ответ

0

Попробуйте установить таймаут соединения в вашем соединении. Этот таймаут превышен из-за команды, для которой требуется больше времени для обработки. Скажите, пожалуйста, если он работает

+0

Вы имеете в виду время ожидания соединения в строке соединения?! Я также установил это на 30 и 60 и 120, но не работал! все равно такое же исключение - плюс «70 процентов обработано». :-( My Connection струна "Источник данных = \ SQLEXPRESS; AttachDbFilename =" Public Con_Str As String = & DirDataBase & "; Integrated Security = True; Connect Timeout = 30; User Instance = True" –

+0

Как долго это ваше заявление работает? Вы должны измерить время – etalon11

+0

28 секунд! Тайм-аут действительно полезный? моя база данных имеет около 1000 строк! Я не думаю, что это слишком сложно для базы данных, чтобы поддержать их !? –

Смежные вопросы