PDA

View Full Version : restore کردن دیتابیس در حین اجرای برنامه



yaserzare
سه شنبه 06 آذر 1386, 22:07 عصر
من از کد زیر استفاده میکنم .

Dim Result As DialogResult = OpenFile.ShowDialog
If Result = Windows.Forms.DialogResult.OK Then
Dim ObjConnection AsNew SqlConnection("server=localhost;database=master;user id=sa;password")
Dim objcommand AsNew SqlCommand
objcommand.Connection = ObjConnection
objcommand.CommandText = " Restore database FirstDesign from disk=" & "'" & OpenFile.FileName & "'" & " with move 'firstdesign_data' to 'C:\FirstDesign_data.mdf', move 'firstdesign_log' to 'c:\firstdesign_log.ldf'"
ObjConnection.Open()
objcommand.ExecuteScalar()
ObjConnection.Close()
EndIf

ولی با خطای زیر مواجه است مشکل از کجاست ممنون.

Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.

ir_programmer
چهارشنبه 07 آذر 1386, 07:13 صبح
تو دیتابیس های در حال استفاده که میخای Restore کنی رو Kill میکنی؟


من این کدو نوشتم. کار Kill رو انجام میده.


Private Sub KillProcess()

Dim i As Integer

OpenConn(cmbDBName.SelectedIndex + 1)

Dim Dtskill As New DataSet
Dim Adapter As New SqlDataAdapter(" use master select sl.spid from sysdatabases sd , syslocks sl where sd.dbid = sl.dbid and sd.name = '" & cmbDBName.Text & "'", mConn)

Adapter.Fill(Dtskill, "tblKill")


For i = 0 To Dtskill.Tables("tblKill").Rows.Count - 1
cmd = New SqlCommand(" Kill " + Dtskill.Tables("tblKill").Rows(i)(0).ToString, mConn)
MsgBox(" Kill " + Dtskill.Tables("tblKill").Rows(i)(0).ToString)
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox("!! بروز مشکل در عملیات")
Conn.Close()
Exit Sub
End Try
Next i

End Sub