PDA

View Full Version : چطور میشه ProgressBar برای پشتیبان گیری تنظیم کرد ( با متغیر بودن حجم فایل بکاپ و عدم داشتن زمان)



aftabeshargh
شنبه 20 اسفند 1390, 14:49 عصر
برای کاربرد صحیح
ProgressBar
(http://barnamenevis.org/showthread.php?331661-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-ProgressBar)

در پشتیبانگیری و نمایش واقعی روند عملیات پشتیبانگیری ( و نه به منظور تنها سرگرم کردن کاربر) چطور باید از پروگرس استفاده کرد؟
یه نمونه برنامه با vs2008 و sql2005 میزارم دوستان اگه مایل بودن بهش یه پروگرس اضافه کنن
ممنون
http://s2.picofile.com/file/7324375264/WindowsApplication7.rar.html

mgh64120
شنبه 20 اسفند 1390, 16:23 عصر
سلام دوست عزيز
چاره كار شما استفاده از Smo براي عمليات پشتيبان گيري يا بازگرداني هست.
براي نمونه به اين تاپيك (http://barnamenevis.org/showthread.php?178801-پشتيبان-گيري-از-SQL-در-VB.net) يك سري بزن.
ويا از نمونه پروژه زير استفاده كن.
موفق باشيد...

shadi khanum
شنبه 20 اسفند 1390, 22:48 عصر
اگه نخوای از smo استفاده کنی میتونی از یه thread بصورت background worker استفاده کنی و مثلا یه عکس در حال چرخش رو نشون بدی ولی اگه واقعا میخوای درصد انجام کار رو نشو کاربر بدی میتونی از smo استفاده کنی و خودت بگی که interval چند درصد باشه یعنی چقد چقد درصد پیشرفت رو نشون بده. مثلا خود ssms اگه توجه کرده باشی 10 تایی نشون میده
موفق باشی

aftabeshargh
یک شنبه 21 اسفند 1390, 11:19 صبح
سلام
ببخشید دوستان
اگه من بخوام مثلا از دستورای ساده زیر استفاده کنم و از smo استفاده نکنم چطور باید توی این دستورات از ProgressBar استفاده کنم برای نمایش درصد پیشرفت ؟
(textbox1.text مسیر ذخیره فایل پشتیبان هستش )




Private Sub bk(ByVal masir As String)
Try
If masir = "" OrElse Not IO.Directory.Exists(IO.Path.GetDirectoryName(masir )) Then
SaveFileDialog1.Filter = "پرونده پشتیبان (*.Bak)|*.bak"
If (SaveFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
masir = SaveFileDialog1.FileName
Else
Throw New ApplicationException("عملیات توسط کاربر لغو شد")
End If
End If

If System.IO.File.Exists(masir) Then

System.IO.File.Delete(masir)
End If

Dim SqlCommand1 As New SqlClient.SqlCommand
Dim sqlconnection1 As New SqlClient.SqlConnection



sqlconnection1.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & My.Application.Info.DirectoryPath + "\dbjahedi.mdf;Integrated Security=True;User Instance=True"
SqlCommand1.CommandText = " Use Master " & vbNewLine
SqlCommand1.CommandText &= "BACKUP DATABASE [" + Application.StartupPath + "\dbjahedi.mdf] TO DISK ='" & masir & "'"

SqlCommand1.Connection = sqlconnection1


SqlCommand1.Connection.Open()
SqlCommand1.ExecuteNonQuery()
sqlconnection1.Close()

pro.Visible = True
MsgBox(" " & "پشتيبانگيري باموفقيت درمسير" & vbCrLf & masir & vbCrLf & " " & "انجام شد", MsgBoxStyle.Information, "")
TextBox1.Text = masir
My.Settings.masir = TextBox1.Text
My.Settings.Save()


Catch ex As Exception
MsgBox("عدم توانایی در پشتیبان گیری" & vbNewLine & ex.Message)
End Try


End Sub


و تویه دکمه پشتیبانگیری :

bk(TextBox1.Text)

فرید نجفلو
یک شنبه 21 اسفند 1390, 15:14 عصر
این دست خط واسم خیلی آشناست فقط کلمه masir نا آشنا می زنه (کلک از کجا کپی زدی):قهقهه:
سه چهار بار ضمیمه رو عوض کردی من نتونستم دانلود کنم
فکر کنم راه حلی داشته باشه می گردم می گم

aftabeshargh
یک شنبه 21 اسفند 1390, 18:18 عصر
سلام
جناب نجفلو از جایی کپی بدون اجازه نویسندش نزدم !! چندروز پیش این دستور ساده پشتیبانگیری رو گذاشتم تا دوستان تغییرش بدن تا درمسیر از پیش تععین شده پشتیبانگیری رو انجام بده " که یادم نبود کدوم یکی از دوستان برام برنامه رو تکمیل کرده بود و گذاشته بود " الان فهمیدم که شما زحمتش رو کشیده بودید (بازم ممنون)

برای استفاده صحیح از ProgressBar دوست خوبمون VbBoss یه برنامه گذاشته بودن که هنگام کپی یک فایل فرایند رو با progressBar نشون میدادن (حجم فایل رو اول مشخص میکردن و درصد پیشرفت رو برا اساس اون افزایش میدادن)

حالا برای این دستور بکاپ که در پست بالا نوشتم چطور باید از progressbar استفاده کرد در صورتی که حجم فایل بکاپ مشخص و ثابت نیست ( یعنی هیچ راهی نیست از progressbar استفاده واقعی بشه و درصد واقعی رو نشون بده و منظور فقط سرگرم کردن کاربر نباشه ؟)
چون ضمیمه هام مشکل داشت تو پست بالا کدها رو نوشتم

ممنون

aftabeshargh
یک شنبه 21 اسفند 1390, 18:37 عصر
چندجا آپلود کردم اما مثل اینکه دوستان موفق به دانلود نشدن
http://p30upload.com/download.php?filename=1331478876_WindowsApplicatio n7.rar

فرید نجفلو
یک شنبه 21 اسفند 1390, 19:53 عصر
سلام
جناب نجفلو از جایی کپی بدون اجازه نویسندش نزدم !! چندروز پیش این دستور ساده پشتیبانگیری رو گذاشتم تا دوستان تغییرش بدن تا درمسیر از پیش تععین شده پشتیبانگیری رو انجام بده " که یادم نبود کدوم یکی از دوستان برام برنامه رو تکمیل کرده بود و گذاشته بود " الان فهمیدم که شما زحمتش رو کشیده بودید (بازم ممنون)

برای استفاده صحیح از ProgressBar دوست خوبمون VbBoss یه برنامه گذاشته بودن که هنگام کپی یک فایل فرایند رو با progressBar نشون میدادن (حجم فایل رو اول مشخص میکردن و درصد پیشرفت رو برا اساس اون افزایش میدادن)

حالا برای این دستور بکاپ که در پست بالا نوشتم چطور باید از progressbar استفاده کرد در صورتی که حجم فایل بکاپ مشخص و ثابت نیست ( یعنی هیچ راهی نیست از progressbar استفاده واقعی بشه و درصد واقعی رو نشون بده و منظور فقط سرگرم کردن کاربر نباشه ؟)
چون ضمیمه هام مشکل داشت تو پست بالا کدها رو نوشتم

ممنون

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