邹老师,您好.麻烦您帮我看看备份恢复数据库的代码.数据库恢复后但没有什么变化,还是备份后修改的状态.
备份:
sqlstr = "BACKUP DATABASE sort TO DISK='" & filePath & "' WITH Format"
conn="Provider=SQLOLEDB;Persist Security Info=False;Data Source=(local);Initial Catalog=Sort;User ID=sa;password=860312;"
Dim objConnection As New OleDbConnection(CONN)
Dim objcmd As OleDbCommand = New OleDbCommand(SQLStr, objConnection)
objcmd.CommandType = CommandType.Text
If objConnection.State <> ConnectionState.Open Then
objConnection.Open() '打开数据库连接
End If
objcmd.ExecuteNonQuery() '执行SQL语句
MsgBox("备份成功")
If objConnection.State <> ConnectionState.Closed Then
objConnection.Close() '关闭数据库连接
End If
恢复:
Dim constr As String = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=master;User ID=sa;password=860312;"
Dim cn As New OleDbConnection(constr)
Dim cn1 As New OleDbConnection(constr)
Dim mydr As OleDbDataReader
Dim str As String
cn.Open()
cn1.Open()
Dim cm As OleDbCommand = New OleDbCommand("select spid from master..sysprocesses where dbid=db_id('sort')", cn)
mydr = cm.ExecuteReader()
Dim cm1 As OleDbCommand = New OleDbCommand()
cm1.Connection = cn1
While (mydr.Read()) '杀死进程
str = "kill " & mydr("spid").ToString()
cm1.CommandText = str
cm1.CommandType = CommandType.Text
Application.DoEvents()
cm1.ExecuteNonQuery() '杀进程
End While
mydr.Close()
cm = New OleDbCommand("RESTORE DATABASE sort FROM DISK ='" & filePath & "'", cn)
cn.Close()
cn1.Close()
MessageBox.Show("数据库还原成功!现在重新启动本系统...... ", "信息提示:", MessageBoxButtons.OK, MessageBoxIcon.Information)
'关闭该应用程序,重新启动
Process.Start(Process.GetCurrentProcess().ProcessName + ".exe")
Application.Exit()
GC.Collect() '内存垃圾收集