mgh64120
جمعه 21 آبان 1389, 18:49 عصر
با عرض سلام و خسته نباشيد خدمت سروران گرامي
باز هم سئوال در مورد "نحوه بازگرداني اطلاعات پايگاه داده SQLServer " يا همون Restore Database
مي دونم اين سئوال خيلي تكراري است و پاسخ هاي مكرر و صحيحي در اين مورد داده شده.
ولي سئوال من كمي فرق ميكنه.
من در پروژه ام وقتي فرم اوليه لود ميشه يك بار به پايگاه داده وصل شده و اطلاعاتي رو دريافت مي كنم و اتصال رو با پايگاه داده قطع و حتي شي اتصال داده (Con) رو هم از بين مي برم(Con = Nothing)
حال همين وصل و قطع شدن به پايگاه داده، باعث ميشه كه من نتونم با استفاده از فايل پشتيباني كه قبلا تهيه نموده پايگاه داده رو Restore كنم و پيغام درحال استفاده بودن پايگاه داده رو ميده.
پيشاپيش از توجه و كمك عزيزان كمال قدرداني رو دارم.
قابل توضيح كه من با VB.Net به SQLServer2005 با استفاده از SQLEXPRESS وصل ميشم و در ادامه كدهايي كه در پروژم استفاده مي كنم قرار ميدم.
Dim Con AsNew SqlConnection("Server=.\sqlexpress;Integrated Security=True;database=Day")
Dim DA As SqlDataAdapter
Dim DS As DataSet : Dim DV As DataView
'
PrivateSub frmLogin_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
'
DA = New SqlDataAdapter("SELECT SanNo, UserName, Password FROM ListSandooq", Con)
DS = New DataSet
DA.Fill(DS, "ListSandooq")
DV = New DataView(DS.Tables("ListSandooq"))
cboUserName.DataSource = DS.Tables("ListSandooq")
cboUserName.DisplayMember = "UserName"
cboUserName.ValueMember =
"Password"
'
Me.DataBindings.Clear()
Me.DataBindings.Add("Tag", DV, "SanNo")
'
If cboUserName.SelectedIndex = -1 Then
cboUserName.SelectedIndex = 0
EndIf
If Con.State = ConnectionState.Open Then Con.Close()
EndSub
و اين هم كد بازگرداني :
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim strSql AsString = "USE master; RESTORE DATABASE [Day]" & _
" FROM DISK ='" & Replace(txtMasir.Text, "rar", "bak") & "'"
Dim cmd = New SqlCommand(strSql, Con)
Try
cmd.ExecuteNonQuery()
'
MessageBox.Show(
"عمليات بازگرداني با موفقيت انجام شد.", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
If Con.State = ConnectionState.Open Then Con.Close()
If chkRar.Checked = TrueThen
IfMy.Computer.FileSystem.FileExists(Replace(txtMas ir.Text, "rar", "bak")) = TrueThen
My.Computer.FileSystem.DeleteFile(Replace(txtMasir .Text, "rar", "bak"))
EndIf
EndIf
Me.Dispose()
Catch ex As SqlException
MessageBox.Show("عمليات بازگرداني با خطا مواجه شد.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning)
EndTry
End Sub
:لبخندساده::گیج:
باز هم سئوال در مورد "نحوه بازگرداني اطلاعات پايگاه داده SQLServer " يا همون Restore Database
مي دونم اين سئوال خيلي تكراري است و پاسخ هاي مكرر و صحيحي در اين مورد داده شده.
ولي سئوال من كمي فرق ميكنه.
من در پروژه ام وقتي فرم اوليه لود ميشه يك بار به پايگاه داده وصل شده و اطلاعاتي رو دريافت مي كنم و اتصال رو با پايگاه داده قطع و حتي شي اتصال داده (Con) رو هم از بين مي برم(Con = Nothing)
حال همين وصل و قطع شدن به پايگاه داده، باعث ميشه كه من نتونم با استفاده از فايل پشتيباني كه قبلا تهيه نموده پايگاه داده رو Restore كنم و پيغام درحال استفاده بودن پايگاه داده رو ميده.
پيشاپيش از توجه و كمك عزيزان كمال قدرداني رو دارم.
قابل توضيح كه من با VB.Net به SQLServer2005 با استفاده از SQLEXPRESS وصل ميشم و در ادامه كدهايي كه در پروژم استفاده مي كنم قرار ميدم.
Dim Con AsNew SqlConnection("Server=.\sqlexpress;Integrated Security=True;database=Day")
Dim DA As SqlDataAdapter
Dim DS As DataSet : Dim DV As DataView
'
PrivateSub frmLogin_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
'
DA = New SqlDataAdapter("SELECT SanNo, UserName, Password FROM ListSandooq", Con)
DS = New DataSet
DA.Fill(DS, "ListSandooq")
DV = New DataView(DS.Tables("ListSandooq"))
cboUserName.DataSource = DS.Tables("ListSandooq")
cboUserName.DisplayMember = "UserName"
cboUserName.ValueMember =
"Password"
'
Me.DataBindings.Clear()
Me.DataBindings.Add("Tag", DV, "SanNo")
'
If cboUserName.SelectedIndex = -1 Then
cboUserName.SelectedIndex = 0
EndIf
If Con.State = ConnectionState.Open Then Con.Close()
EndSub
و اين هم كد بازگرداني :
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim strSql AsString = "USE master; RESTORE DATABASE [Day]" & _
" FROM DISK ='" & Replace(txtMasir.Text, "rar", "bak") & "'"
Dim cmd = New SqlCommand(strSql, Con)
Try
cmd.ExecuteNonQuery()
'
MessageBox.Show(
"عمليات بازگرداني با موفقيت انجام شد.", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
If Con.State = ConnectionState.Open Then Con.Close()
If chkRar.Checked = TrueThen
IfMy.Computer.FileSystem.FileExists(Replace(txtMas ir.Text, "rar", "bak")) = TrueThen
My.Computer.FileSystem.DeleteFile(Replace(txtMasir .Text, "rar", "bak"))
EndIf
EndIf
Me.Dispose()
Catch ex As SqlException
MessageBox.Show("عمليات بازگرداني با خطا مواجه شد.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning)
EndTry
End Sub
:لبخندساده::گیج: