PDA

View Full Version : بک آپ گیری و ریستور Backup & Restore



marziyehkochooloo
سه شنبه 06 دی 1390, 09:02 صبح
سلام یه Application در محیط ویژوال استودیو به زبان vb ایجاد کردم که امکانات حذف و ثبت و ویرایش و جستجو و .. رو در بانک اطلاعاتی sql داره حالا میخوام یک دکمه ی backup و یک دکمه ی Restore هم ایجاد کنم در Application کدی توش بنویسم که عملیات بک آپ گیری (تهیه نسخه پشتیبان) و ریستور (بازیابی اطلاعات) رو انجام بده لطفا راهنمایی کنید از چه دستور Sql استفاده کنم ؟‌ چه جوری کدش رو بنویسم ؟

محیط عملیاتی :
ویژوال استودیو 2008 به زبان Vb
جداول بانک اطلاعاتی با Sql2008

shahab2025
سه شنبه 06 دی 1390, 10:55 صبح
سلام
دوست من فکر نمیکنم خیلی سخت باشه

کوئری مربوط به بکاپ گرفتن را از اینجا (http://technet.microsoft.com/en-us/library/ms186865.aspx) و ریستور کردن را از اینجا (http://msdn.microsoft.com/en-us/library/ms186858.aspx) یادبگیر و از برنامه به بانکت ارسال کن .

برات مفید بود زدن دکمه تشکر یادت نره
موفق باشی

marziyehkochooloo
سه شنبه 06 دی 1390, 21:39 عصر
کسی نیستش نظری چیزی بده ؟ با سرچی که تو تاپیکای قبلی بود این کد رو ینجا گذاشتم که فقط برای دکمه ی بک آپ هستش از دیتا بیسی به نام library بک آپ میگیره - اگه کسی در مورد کدنویسی برا دکمه ی ریستور اطلاعاتی داره بگه ممنون میشم !




Public Class Form1
Public Const Data As String = "Library"

Dim conString As String = "attachdbfilename=|datadirectory|\" & Data & _
".mdf;initial catalog=" & Data & _
";Integrated Security=true;" & _
"data source=.\sqlexpress;" & _
"User Instance=True"

Dim con = New SqlClient.SqlConnection(conString)
Dim com = New SqlClient.SqlCommand

Private Sub backup(ByVal Database, ByVal path)
If con.State = ConnectionState.Closed Then con.Open()

Dim Sql2 As String = "BACKUP DATABASE " & Database & " TO DISK = N'" & path & _
"' WITH NOFORMAT, INIT, NAME = N'" & Database & _
"-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 "

com = New SqlClient.SqlCommand
Try
With com
.Connection = con
.CommandText = Sql2
.ExecuteNonQuery()
End With
MsgBox("ok")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Backup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Backup.Click
Dim SaveFile As New SaveFileDialog
SaveFile.Filter = "Backup File (*.Bak)|*.bak"
SaveFile.ShowDialog()
backup(Data, SaveFile.FileName.ToString)
End Sub

End Class

mgh64120
سه شنبه 06 دی 1390, 23:37 عصر
سلام دوست عزيز
قطعه كد براي بازيابي اطلاعات :


Dim strSql As String = _
"USE master;ALTER DATABASE DBName SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
"RESTORE DATABASE DBName FROM DISK ='" & txtMasir.Text & _
"' with REPLACE;ALTER DATABASE DBName SET MULTI_USER"

موفق باشيد...

sh2007
چهارشنبه 07 دی 1390, 20:27 عصر
ابنو ببین

http://barnamenevis.org/showthread.php?t=172167

klinton
چهارشنبه 07 دی 1390, 22:43 عصر
If MsgBox(" ", 36) = MsgBoxResult.Yes Then


'''''''''''''''''

SaveFileDialog1.FileName =
"dabirkhane"




If (SaveFileDialog1.ShowDialog() = DialogResult.OK) Then

Cursor.Current = Cursors.WaitCursor



con.Open()


'//----------------------------------------------------------------------------------------------------




'//Execute SQL---------------


Dim com As New SqlCommand("backup database db_dabirxane to disk ='" + SaveFileDialog1.FileName + ".bak' with init,stats=10", con)


'command = newSqlCommand(@"backup database Tanin to disk ='"+saveFileDialog1.FileName+".bak' with init,stats=10", connect);

com.ExecuteNonQuery()


'//-------------------------------------------------------------------------------------------------------------------------------

con.Close()


'connect.Close();





MessageBox.Show(
" ", " ", MessageBoxButtons.OK, MessageBoxIcon.Information)


End If


''''''''''''''''''''


End If









If

MsgBox(" ", 36) = MsgBoxResult.Yes Then


''''

OpenFileDialog1.FileName =
"dabirkhane"


' OpenFileDialog1.Filter = ("Backup Files(*.bak)|*.bak")


If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


Dim cmd As String = "ALTER DATABASE [db_dabirxane] SET SINGLE_USER with ROLLBACK IMMEDIATE USE MASTER ; restore Database [db_dabirxane] from disk='" & OpenFileDialog1.FileName & "'WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10"


Dim comm As New SqlCommand(cmd, con)

con.Open()

comm.ExecuteNonQuery()

con.Close()

MsgBox(
" ", MsgBoxStyle.Information)


End If




''''


End If

sh2007
جمعه 09 دی 1390, 18:52 عصر
من هم با بازیابی مشکل دارم و فرصت نکردم این موضوع رو کامل بررسی کنم اما دوستان این دو لینک رو هم ببینید

http://social.msdn.microsoft.com/Forums/en-US/sqlsmoanddmo/thread/5638666e-cd2e-467d-bd03-6d20e2cbbe1b/
http://www.codeproject.com/Questions/265638/SQL-BACKUP-AND-RESTORE-FROM-VB-NET-2010