PDA

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



systam
شنبه 29 تیر 1392, 13:26 عصر
سلام من با این کد از برنامه بکاپ میگیرم مشکلی نداره
Dim save1 As New SaveFileDialog
'save1.DefaultExt = "Bak"
save1.Filter = "SQL Backup Files (*.BAK)|*.BAK |All Files(*.*)|*.0*)"
save1.FileName = "Database"
save1.OverwritePrompt = True
'save1.FilterIndex = 1


If save1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim str As String = "\Database.mdf"
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim cmd As New SqlCommand()
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "USE master backup database [" + System.Windows.Forms.Application.StartupPath & str + "] to disk = '" + save1.FileName.ToString + "'"
'con.Open()
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("نسخه پشتیبان با موفقیت تهیه گردید")
End If


و لی برای بازیابی با این کد هر کار میکنم نمیدونم چیه سایت برنامه نویس رو زیرو کردم هر کدی رو بکی امتحان کردم نشد
Dim Open1 As New OpenFileDialog
'Open1.DefaultExt = "Bak"
'Open1.Filter = "SQL Backup Files (*.BAK)|*.BAK |All Files(*.*)|*.0*)"
Open1.FileName = "Database"
Open1.FilterIndex = 1


If Open1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim str As String = "\Database.mdf"

Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim cmd As New SqlCommand()
cmd.Connection = con
cmd.CommandType = CommandType.Text
'cmd.CommandText = "USE [master] RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] from disk = '" + Open1.FileName.ToString + "'"
cmd.CommandText = "USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] FROM DISK = N'" + Open1.FileName.ToString + " '"
'con.Open()
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("بازیابی با موفقیت انجامبد")
Form1_Load(e, sender)
End If


دوستان راهنمایی کنید مشکل کارکجایه خدا خیرتان بده


یا علی

systam
شنبه 29 تیر 1392, 13:37 عصر
یک سیخ زدن اسم بانک رو عوض کردم با این خطا overwrite رو میده

misagh1370
یک شنبه 30 تیر 1392, 00:20 صبح
من از کد واسه ریستور استفاده میکنم


Private Sub Restore(ByVal strFileName As String)
' USE Master RESTORE DATABASE [lendCashDB] FROM DISK =@PATH

Try

Dim command As String = "use [master]; RESTORE DATABASE project1 from disk='" + strFileName + "'with file = 1, NOUNLOAD, REPLACE, STATS = 10 "
'this.Cursor = Cursors.WaitCursor;
Dim ocommand As SqlCommand
Dim oConnection As SqlConnection
oConnection = New SqlConnection("Data Source=mahtab-pc;Initial Catalog=project1;Integrated Security=True")
If oConnection.State <> ConnectionState.Open Then
oConnection.Open()
End If
ocommand = New SqlCommand(command, oConnection)
MessageBox.Show(command)
ocommand.ExecuteNonQuery()
'this.Cursor = Cursors.Default
oConnection.Close()
MessageBox.Show("بازیابی اطلاعات از نسخه پشتیبان با موفقیت انجام شد ")


Catch ex As Exception

MessageBox.Show("Error Occurd :" + ex.Message)
End Try
End Sub


Private Sub btnreastor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnreastor.Click
Dim strFileName As String = String.Empty
OpenFileDialog1.Filter = "SQL Backup files (*.BAK) |*.BAK|All files(*.*)|*.*"

OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.Title = "Restore SQL File"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

strFileName = OpenFileDialog1.FileName

Restore(strFileName)
End If
End Sub

shadi khanum
یک شنبه 30 تیر 1392, 08:20 صبح
توی دستور REsotre از move استفاده کن، تو help خود SQL اگه Restore رو سرچ کنی دستور کامل رو با Sample میاره. این Err داره میگه شما باید مسیر جدیدی برای restore شدن فیل های mdf و ldf مشخص کنی..

systam
یک شنبه 30 تیر 1392, 10:08 صبح
من از کد واسه ریستور استفاده میکنم

فرقی نکرد همون خطا قبلی رو میده

shadi khanum
یک شنبه 30 تیر 1392, 14:59 عصر
دستوری که دوستمون نوشته هم فایل ها رو move نمیکنه برای همین خطا میده
RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH NORECOVERY, MOVE 'AdventureWorks2008R2_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWor ks2008R2.mdf', MOVE 'AdventureWorks2008R2_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWor ks2008R2.ldf'

برای اطلاعات خودت درستش کن

systam
یک شنبه 30 تیر 1392, 20:42 عصر
سلام
من که بریدم دیگه این برنامه دوستان کی میتونه کمکم کنه
برنامه رو ضمیمه کردم

systam
دوشنبه 31 تیر 1392, 18:02 عصر
من الان commandtext داخلش اینه :
" USE Master RESTORE database [E:\test\test\bin\Debug\db.mdf] FROM DISK ='E:\db.BAK' WITH NORECOVERY , MOVE 'db' TO 'E:\test\test\bin\Debug\db.mdf', MOVE 'db_log' TO ' E:\test\test\bin\Debug \db_log.ldf' "


خطایی که میگیره

systam
دوشنبه 31 تیر 1392, 18:05 عصر
طبق این صفحه هم پیش رفتم نشد :عصبانی++::عصبانی::گریه: (http://blogs.msdn.com/b/sqlserverfaq/archive/2010/04/26/how-to-restore-database-backup-full-and-transaction-logs-after-regenerating-database-encryption-key-key-with-a-new-certificate-having-no-impact-on-log-sequence-number-lsn-chain.aspx)

systam
دوشنبه 31 تیر 1392, 22:04 عصر
من از کد واسه ریستور استفاده میکنم

سلام من هر کدی رو بگی امتحان کردم نشد
نکنه که باید بانک در sql server باشه کار انجام بشه
من از sql خود .net استفاده میکنم
مشکل از اون نیست

فرید نجفلو
سه شنبه 01 مرداد 1392, 17:09 عصر
سلام
دوست عزیز من نمونه برنامه شما رو با این کد تست کردم و بازیابی به خوبی انجام شد

Imports System.Data.SqlClient
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sta As New SqlDataAdapter("select * from r", "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
Dim ds As New DataSet
Dim bs As New BindingSource
ds.Clear()
sta.Fill(ds, "r")
bs.DataSource = ds
bs.DataMember = "r"
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = bs

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Open1 As New OpenFileDialog
Open1.FileName = "db"
Open1.FilterIndex = 1

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
cmd.CommandText = "USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] FROM DISK = N'" + Open1.FileName.ToString + " '"
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("بازیابی با موفقیت انجامبد")
Form1_Load(Nothing, Nothing)
End If
End Sub
End Class



نکنه که باید بانک در sql server باشه کار انجام بشه
من از sql خود .net استفاده میکنم
مشکل از اون نیست
تو این مورد اگه از VS به دیتابیس متصل شدید قبل از اینکه برنامه رو اجرا کنید کطمئن بشید اتصال دیتابیس رو بسته باشید
از server Explorer رو دیتابیس کلیک راست و Close connection رو بزنید

systam
سه شنبه 01 مرداد 1392, 19:29 عصر
سلام
دمت گرم داش فرید کد commandtext که شما گذاشتید رو گذاشتم به راحتی کار کرد:بوس::بوس::بوس::تشویق:


میبنید ادمی که بلد نیست همینه دیگه:گریه::گریه:
4 روزه الافم که مشکل کجا بوده جون بانک برنامه در server explorer باز بوده :قهقهه::قهقهه::قهقهه::قهقهه:

برنامه رو ضمیمه میکنند که دوستانی که مشکل من رو داشتند بتونند از برنامه استفاده کنند
بانک برنامه خالی یک فایل بکاپ گرفته شده از قبل داخل فایل فشرده هست
میتونند از همون تست رو انجام بدند:تشویق::تشویق::تشویق::تش یق:




یا علی