PDA

View Full Version : عدم گرفتن بکاپ و ریستور در vb.net



melenum3000
شنبه 18 آذر 1396, 13:16 عصر
با سلام خدمت دوستان
یه برنامه نوشتم و میخوام از دیتا بیسم بکاپ بگیرم با چند کد امتحان کردم و پیغام خطا میده
147230
چه کاری باید انجام بدم که دیتا بیسم رو بشناسه و اجازه بکاپ گرفتن رو بهم بده

samiasoft
شنبه 18 آذر 1396, 21:38 عصر
درود

ببینید سوالی که مطرح کردید ناقص هست...نگفتید چه دیتابیسی ؟ اکسس یا اسکیوال؟

کدی که برای بکاپ گرفتن نوشتید رو قرار بدید

در متن خطا اومده که نمیتواند دیتابیس موردنظر رو پیدا کند.

melenum3000
یک شنبه 19 آذر 1396, 10:15 صبح
سلام دیتا بیس اس کیو ال هستش لوکال نه سرویس بیسد
میدونم معنی پیغام چیه
من تو کانکشن استرینگ دیتا بیس رو معرفی کردم و تو کامند دستور آپ دیت رو نوشتم

Try
Dim sqlcon As New SqlConnection


sqlcon.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\ documents\sewag_db.mdf;Integrated Security=True;Connect Timeout=30"


SaveFileDialog1.ShowDialog()
Dim k = SaveFileDialog1.FileName
Dim dbname As String = "sewag_db"
Try
sqlcon.Open()


cmd = New SqlCommand("backup database sewag_db to disk='" & k & "'", sqlcon)
cmd.ExecuteNonQuery()
sqlcon.Close()
MessageBox.Show("Backup database successfully")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try


Catch ex As Exception
MsgBox(ex.Message)
End Try

محمد آشتیانی
یک شنبه 19 آذر 1396, 13:52 عصر
سلام
به این صورت بنویسید

Dim databasePath = "D:\documents\sewag_db.mdf"


Dim sqlConnection As New SqlConnection With {.ConnectionString = $"Server=(localdb)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName={databasePath};"}
Dim sqlCommand As New SqlCommand


If SaveFileDialog1.ShowDialog() = DialogResult.OK Then


Const dbName = "sewag_db"


Try
sqlCommand.Connection = sqlConnection
sqlCommand.CommandText = $"BACKUP DATABASE [{databasePath}] TO DISK = N'{SaveFileDialog1.FileName}' WITH NOFORMAT, NOINIT, NAME = N'{dbName} Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
sqlConnection.Open()
sqlCommand.ExecuteNonQuery()
MessageBox.Show($"The backup of database '{dbName}' completed successfully.")
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
sqlConnection.Close()
End Try
End If


یک موردی هم که بنده دیدم این بود که دوتا بلوک Try Catch رو توی هم نوشته بودید ، لزومی به این کار نیست. در واقع نتیجه ای جز شلوغ شدن کد شما نداره.


موفق باشید.

melenum3000
یک شنبه 19 آذر 1396, 18:31 عصر
ممنونم مشکلم حل شد لطف کردی
مشکل کد من از کجا بود؟؟
اگر امکانش بود کد بازیابی (restor) رو هم برام بزاری ممنون میشم

محمد آشتیانی
یک شنبه 19 آذر 1396, 19:35 عصر
سلام
مشکل تفاوت بین کد بنده و شما بود ، یکبار مرور کنید متوجه خواهید شد