PDA

View Full Version : نحوه بازیابی فایل پشتیبان در بانکی که هنگام استفاده از برنامه وصل می شود



masoudcarpet
یک شنبه 06 دی 1388, 19:39 عصر
من برای Backup گرفتن از بانکی که هنگام استفاده از برنامه attach میشه از کد زیر استفاده کردم ولی نمیدونم چه جوری بازیابی کنم لطفا راهنمائی کنید.:متفکر:

Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
PublicClass FrmBackUp
Dim path AsString
Private strsql AsString
Private con As SqlConnection
Private da As SqlDataAdapter
Private com As SqlCommand
Private ds As DataSet
Dim pc AsNew System.Globalization.PersianCalendar
PrivateSub UpdatePBar()
Dim x AsSingle
Dim y AsSingle
Dim percentage AsString = CType((ProgressBar1.Value / ProgressBar1.Maximum * 100), Integer).ToString & "%"
Dim gr As Graphics = Me.ProgressBar1.CreateGraphics
Dim sz As SizeF = gr.MeasureString(percentage, Me.ProgressBar1.Font, Me.ProgressBar1.Width)
x = (Me.ProgressBar1.Width / 2) - (sz.Width / 2)
y = (Me.ProgressBar1.Height / 2) - (sz.Height / 2)
gr.DrawString(percentage, ProgressBar1.Font, Brushes.Black, x, y)
EndSub
PublicSharedSub BackupDatabase(ByVal ConnectionStr AsString, ByVal DevicePath AsString, ByVal FileName AsString)
Dim DataName AsString = FileName
Using cnn AsNew SqlConnection(ConnectionStr)
cnn.Open()
Dim Srvcon AsNew ServerConnection(cnn)
Dim Srv AsNew Server(Srvcon)
' Create backup device item for the backup
Dim bdi AsNew BackupDeviceItem(DataName, DeviceType.File) 'DevicePath &
' Create the backup informaton
Dim Backup AsNew Backup
Backup.Devices.Add(bdi)
With Backup
'Type Of Backup
.Action = BackupActionType.Database
.BackupSetDescription = "Backup DataBase"
.BackupSetName = "DB"
.Database = cnn.Database.ToString()
.LogTruncation = BackupTruncateLogType.Truncate
'Backup.ExpirationDate = New DateTime(2007, 5, 1)
' Run the backup
.SqlBackup(Srv)
EndWith
EndUsing
EndSub
PrivateSub cmdPath_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPath.Click
l.Text = ""
Timer1.Enabled = False
ProgressBar1.Value = 0
savefile.Filter = "Backup File (*.Bak)|*.bak"
SaveFile.ShowDialog()
txtPath.Text = SaveFile.FileName
'SaveFile.FileName
EndSub
PrivateSub FrmBackup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Timer1.Enabled = False
lang_EN()
Try
con = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + My.Application.Info.DirectoryPath + "\data\Database1.mdf;Integrated Security=True;User Instance=True")
Catch ex As Exception
MessageBox.Show(ex.Message)
EndTry
EndSub
PrivateSub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
If txtpath.Text = ""Then
MsgBox(" ", MsgBoxStyle.Critical + MsgBoxStyle.Critical, "")
l.Text = ""
cmdPath.Focus()
Else
Timer1.Enabled = True
path = txtpath.Text
BackupDatabase(con.ConnectionString, savefile.FileNames.ToString, savefile.FileName)
EndIf
EndSub
PrivateSub cmdBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBack.Click
lang_FA()
Me.Close()
EndSub
PublicSub lang_FA()
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(New System.Globalization.CultureInfo("Fa"))
EndSub
PublicSub lang_EN()
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(New System.Globalization.CultureInfo("En"))
EndSub
PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ProgressBar1.Value = ProgressBar1.Maximum Then
l.Text = " "
l.ForeColor = Color.Green
Else
l.Text = "... "
EndIf
If ProgressBar1.Value < ProgressBar1.Maximum Then
ProgressBar1.Value += 1
EndIf
UpdatePBar()
EndSub
EndClass

saeid.memfis
جمعه 11 دی 1388, 16:11 عصر
براي اين كار بايد تمام كانكشن هاي باز رو ببندي كه بعضي وقتها كامل جواب نميده
بهتر اينه بازيابي رو تو يه برنامه ديگه بنويسي و تو برنامه اصلي اونو فراخواني كني و بعد برنامتو ببندي تا از بسته بودن كانكشن ها مطمئن بشي
بايد از بانك مستر استفاده كني

masoudcarpet
دوشنبه 14 دی 1388, 22:58 عصر
این چندمین باره که دارم درخواست میکنم لطفا یک نفر جواب منو بده یا حداقل یک راه بهتر بهم پیشنهاد کنید

aminvb
دوشنبه 14 دی 1388, 23:06 عصر
دوسته من یک سر اینجا بزن اگه مشکلت حل نشد بگو


http://barnamenevis.org/forum/showthread.php?t=178801

sari-1369
سه شنبه 15 دی 1388, 02:22 صبح
من همیشه واسه پشتیبان گیری و برگردوندن بکاپ از این کد استفاده میکنم . زمانی که برنامه به بانک وصله هم کار میکنه .

Dim sql As String = "BACKUP DATABASE [" & My.Application.Info.DirectoryPath & "\Data\DB.mdf" & "] TO DISK='" + txt_path.Text + "\FILE.bak' WITH FORMAT"
Using dbcon = New System.Data.SqlClient.SqlConnection("ConectionString")
Using dbcom = New System.Data.SqlClient.SqlCommand(sql, dbcon)
dbcon.Open()
dbcom.ExecuteNonQuery()
End Using
End Using

برگردوندن بکاپ

Dim sql As String = "USE master; RESTORE DATABASE [" & My.Application.Info.DirectoryPath & "\Data\DB.mdf" & "]" & " FROM DISK ='" & txt_path.Text & "'"
Using dbcon = New System.Data.SqlClient.SqlConnection("ConectionString")
Using dbcom = New System.Data.SqlClient.SqlCommand(sql, dbcon)
dbcon.Open()
dbcom.ExecuteNonQuery()
End Using
End Using

mehdi_link
چهارشنبه 30 دی 1388, 17:25 عصر
سلام این مقاله رو ببین