mahdi.m.sh
شنبه 14 آذر 1394, 11:20 صبح
با عرض سلام به همه بزرگواران
شاید تاپیکم تکراری باشه واسه همین هم عذر خواهی می کنم ولی هر کاری کردم مشکلم حل نشد
برنامه ای که به زبان VB.NET داخل ویژوال 2010 نوشتم و از دیتابیس SQL Express خود ویژوال 2010 استفاده کردم که به برنامه Attach شده ، میخوام برنامه قابلیت Backup و Restore رو از بانک داشته باشه .
از کدهای زیر که از همین سایت پیدا کردم برای این کار استفاده کردم ، جالب اینجاست که این کدا داخل برنامه ای که توی سایت بود عمل می کرد ؛ اما وقتی دقیقاً از همون کدها رو داخل برنامه خودم استفاده کردم بکاپ گرفته میشه ولی موقع بازگردانی مجدد بکاپ (Restore) روی دیتا بیس هیچ تغییری اعمال نمیشه و بانک مجدداً اطلاعات قدیمی خودش رو لود میکنه .
کد دکمه Restore
Dim Open1 As New OpenFileDialog
Open1.FileName = "db"
If Open1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim str As String = "\db.mdf"
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim cmd As New SqlCommand()
SqlConnection.ClearAllPools()
cmd.Connection = con
cmd.CommandType = CommandType.Text
con.ChangeDatabase("master")
cmd.CommandText = "USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] FROM DISK = N'" + Open1.FileName.ToString + " '"
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("بازیابی با موفقیت انجام شد")
End If
کد دکمه Backup
Dim save1 As New SaveFileDialog
save1.Filter = "SQL Backup Files (*.BAK)|*.BAK |All Files(*.*)|*.0*)"
save1.FileName = "db"
save1.OverwritePrompt = True
Dim str As String = "\db.mdf"
If save1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim con1 As New SqlConnection("DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDire ctory|\db.mdf;IntegratedSecurity=True;Connect Timeout=30;User Instance=True")
con1.Open()
Dim cmd1 As New SqlCommand()
SqlConnection.ClearAllPools()
cmd1.Connection = con1
str_path = save1.FileName.ToString
cmd1.CommandType = CommandType.Text
con1.ChangeDatabase("master")
cmd1.CommandText = "backup DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] toDISK=N'"+save1.FileName.ToString + " '"
cmd1.ExecuteNonQuery()
con1.Close()
MessageBox.Show("Cerate Backup Successfull")
End If
کد کانکتشن استرینگ
Dim path As String = (Microsoft.VisualBasic.Left(Application.StartupPat h, Len(Application.StartupPath) - 9))
'************************************************* ************************************************** *
Dim OleDbConnection1 As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & path & "db.mdf;Integrated Security=True;User Instance=True")
دوستان لطف کنید راهمایی کنید
تشکر
شاید تاپیکم تکراری باشه واسه همین هم عذر خواهی می کنم ولی هر کاری کردم مشکلم حل نشد
برنامه ای که به زبان VB.NET داخل ویژوال 2010 نوشتم و از دیتابیس SQL Express خود ویژوال 2010 استفاده کردم که به برنامه Attach شده ، میخوام برنامه قابلیت Backup و Restore رو از بانک داشته باشه .
از کدهای زیر که از همین سایت پیدا کردم برای این کار استفاده کردم ، جالب اینجاست که این کدا داخل برنامه ای که توی سایت بود عمل می کرد ؛ اما وقتی دقیقاً از همون کدها رو داخل برنامه خودم استفاده کردم بکاپ گرفته میشه ولی موقع بازگردانی مجدد بکاپ (Restore) روی دیتا بیس هیچ تغییری اعمال نمیشه و بانک مجدداً اطلاعات قدیمی خودش رو لود میکنه .
کد دکمه Restore
Dim Open1 As New OpenFileDialog
Open1.FileName = "db"
If Open1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim str As String = "\db.mdf"
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim cmd As New SqlCommand()
SqlConnection.ClearAllPools()
cmd.Connection = con
cmd.CommandType = CommandType.Text
con.ChangeDatabase("master")
cmd.CommandText = "USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] FROM DISK = N'" + Open1.FileName.ToString + " '"
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("بازیابی با موفقیت انجام شد")
End If
کد دکمه Backup
Dim save1 As New SaveFileDialog
save1.Filter = "SQL Backup Files (*.BAK)|*.BAK |All Files(*.*)|*.0*)"
save1.FileName = "db"
save1.OverwritePrompt = True
Dim str As String = "\db.mdf"
If save1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim con1 As New SqlConnection("DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDire ctory|\db.mdf;IntegratedSecurity=True;Connect Timeout=30;User Instance=True")
con1.Open()
Dim cmd1 As New SqlCommand()
SqlConnection.ClearAllPools()
cmd1.Connection = con1
str_path = save1.FileName.ToString
cmd1.CommandType = CommandType.Text
con1.ChangeDatabase("master")
cmd1.CommandText = "backup DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] toDISK=N'"+save1.FileName.ToString + " '"
cmd1.ExecuteNonQuery()
con1.Close()
MessageBox.Show("Cerate Backup Successfull")
End If
کد کانکتشن استرینگ
Dim path As String = (Microsoft.VisualBasic.Left(Application.StartupPat h, Len(Application.StartupPath) - 9))
'************************************************* ************************************************** *
Dim OleDbConnection1 As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & path & "db.mdf;Integrated Security=True;User Instance=True")
دوستان لطف کنید راهمایی کنید
تشکر