حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
با عرض سلام خدمت همه ی دوستان عزیز
من داخل بانکم 10 تا جدول دارم که 9تای آنها توسط فیلد کدملی زیر مجموعه جدول مشخصات شده اند بطوریکه اگر یک رکورد مثلا با کد ملی1234567890 در جدول مشخصات را حذف نمایم در مابقی جداول چنانچه رکوردی با این کدملی وجود داشته باشد نبز خذف خواهند شد.حال اگر این اطلاعات زیاد باشند طبیعتا در مدت زمان خاصی کلیه اطلاعات حذف خواهتد شد و ممکن است که کمی بطول بیاتجامد
حالا من میخوام با استفاده از یک Progressbar این مدت زمان را کنترل کنم که با اتمام خذفیات Progressbar کامل پر شده و یک پیغام مبتنی بر اتمام کار نمایش دهد.
ارهمه ی شما ممنونم
نقل قول: حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
دوستان اگه میشه در این مورد راهنمایی بفرمایید.
نقل قول: حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
اصلاح : آخ ببخشید من فکر کردم این توی بخش C# پرسیده شده (مثال رو با C# نوشتم :D)
از Backgoround worker کمک بگیرید
زمانیکه یکی از عملیات حذفتون انجام شد Progress Bar رو به پیش ببرید
مثال :
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
//انجام عملیات مورد نظر
System.Threading.Thread.Sleep(50);
backgroundWorker1.ReportProgress(i+1);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
progressBar1.Text = e.ProgressPercentage.ToString();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("تمام شد");
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
نقل قول: حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
یه Background Worker روی فرم قرار بدید و خاصیت WorkerReportsProgress را روی true قرار دهید
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'در این قسمت اعلام میکنم بکگراند ورکر شروع به کار کند
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
'فرض رو در این میگیریم که شما 100 رکورد را میخواهید ویرایش کنید
Const count As Integer = 100
For i = 0 To count
'در اینجا عملیات مربوط به حذف رو انجام دهید
'این خط مربوط به تست است و نیاز نیست در کد شما باشد
Threading.Thread.Sleep(50)
'اینجا گزارش پیشرفت رو به بکگراند ورکر اعلام کنید
BackgroundWorker1.ReportProgress(i)
Next
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
'این قسمت مشخص میکنید با هر مقدار پیشرفت در عملیات چه اتفاقی بیفتد
'من اعلام کرده ام پروگرس بار رو یک واحد جلو ببرد
Dim percent As Int32 = e.ProgressPercentage
ProgressBar1.Value = percent
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
'عملیات مربوط به پایان کار رو انجا اعلام کنید
MessageBox.Show("Done")
End Sub
End Class
نقل قول: حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
سلام این پیغام رو میده
Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it.
نقل قول: حذف اطلاعات ذخیره شده در همه ی جداول بانک همزمان با Progressbar
سلام
بجای استفاده از ProgressBar ، چیزی شبیه به نمونه برنامه زیردرست کن (پست شماره 2 لینک زیر)
https://barnamenevis.org/showthread.p...8A%D8%AF%D8%9F
موفق باشید