به حرکت در آوردن progress بدون توقف
سلام
خواهشا اگر تکراریه پاکش نکنید
من خیلی دنبال چنین چیزی که می خوام می گردم اما چیزی پیدا نکردم
می خوام progress من به حرکت در بیاد و دقیقا بدونه کی عملیات من تمام می شه و به آخر برسه
یعنی عملیات من زمانی انجام شده که progress من طی یک روند ملایمی به آخر رسیده باشه
ممنون
نقل قول: به حرکت در آوردن progress بدون توقف
اون پروگرس بار بیچاره که شعور نداره بفهمه کی قراره کار شما تموم بشه
فرض کن یک فرایند مثل پر کردن یک لیست باکس داری و این کار توی حلقه انجام میشه، توی هر با که حلقه اجرا میشه بر اساس مقدار فعلی و مقدار نهایی باید پروگرس بار رو جلو ببری
اگر کاری که مد نظرت هست رو بگی شاید بشه بهتر راهنمایی کرد
نقل قول: به حرکت در آوردن progress بدون توقف
من وقتی select ی رو انجام می دم برنامه گیر می کنه می خوام کاری کنم که همزمان progress به کار بیافته و وقتی select تمام شد
progress به آخر برسه
ممنون
نقل قول: به حرکت در آوردن progress بدون توقف
برای اینکه برنامه گیر نکنه باید از Thread استفاده کنی (یا همون بک گروند ورکر)
یا یه راه دیگه هم هست و اون اینکه وقتی پروگرس رو تغییر می دی، فرم رو رفرش کنی
----------
البته فکر کنم منظورت از select خوندن از دیتابیس باشه
من در این مورد اطلاع زیادی ندارم
نقل قول: به حرکت در آوردن progress بدون توقف
یه راه دیگه هم هست (که البته یه جور پاک کردن صورت مسئله هست)
اینکه پروگرس بتر رو بذاری روی حالت marquee
نقل قول: به حرکت در آوردن progress بدون توقف
بله خواندن اطلاعات از دیتابیس
دز موزد همون thread لطفا منو راهنمایی کنید که بتونه همزمان progress رو هم پر کنه
ممنون
نقل قول: به حرکت در آوردن progress بدون توقف
لود کردن دیتا رو توی Backgroundworker بذار
ولی مشکل اینجاست که چجوری می خوای بفهمی چقدر از کار لود کردن پیش رفته؟
1 ضمیمه
نقل قول: به حرکت در آوردن progress بدون توقف
سلام شما میتونید از کدی شبیه به این کد استفاده کنید:
private int Rowscount;
readonly DataTable dt = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
var cnn = new SqlConnection(@"Data Source=.\sqlexpress;initial catalog=shop;integrated security=true;");
var cmd = new SqlCommand("select * from TblProducts", cnn);
var cmdForCount = new SqlCommand("select count(*) from TblProducts", cnn);
cnn.Open();
Rowscount = Convert.ToInt32(cmdForCount.ExecuteScalar());
progressBar1.Maximum = Rowscount;
var ad = new SqlDataAdapter(cmd);
dt.RowChanged += dt_RowChanged;
ad.Fill(dt);
cnn.Close();
dataGridView1.DataSource = dt;
}
private void dt_RowChanged(object sender, DataRowChangeEventArgs e)
{
if (e.Action == DataRowAction.Add)
{
progressBar1.Value += 1;
}
rowCouter = dt.Rows.Count;
}
نقل قول: به حرکت در آوردن progress بدون توقف
ميتوني رکوردها رو يکي يکي با DataReader بخوني و به دنبالش يکي يکي مقدار progress رو اضافه کني.البته مقدار max را براي progress برابر با تعداد کل رکوردهاتون بذاريد.
نقل قول: به حرکت در آوردن progress بدون توقف
من هنوز مشکل رو نتونستم حل کنم
چطوری می تونم همزمان هم اطلاعات در حال پردازش باشه وهم پروسس در گردش باشه
خواهشا کمک کنید
ممنون
نقل قول: به حرکت در آوردن progress بدون توقف
نقل قول:
نوشته شده توسط
sadaf_
من هنوز مشکل رو نتونستم حل کنم
چطوری می تونم همزمان هم اطلاعات در حال پردازش باشه وهم پروسس در گردش باشه
خواهشا کمک کنید
ممنون
منظور شما از پردازش چیه؟
اگه منظور پر کردن دیتاتیبل هست که من نمونه گذاشتم.
مشکل رو دقیق توضیح بدید که جواب کامل بگیرید؟
نقل قول: به حرکت در آوردن progress بدون توقف
من اطلاعات رو از بانک sql
select می کنم و چون گزارشات به مراتب سنگین تر می شوند می خوام پروسس به گردش در بیاد
و وقتی که اطلاعات رو select کردم و به فرم انتقال دادم پروسس به انتها رسیده باشه
همین
نقل قول: به حرکت در آوردن progress بدون توقف
لطفا پست "ساخت loading برای حالت انتظار" رو نگاه کنید مشکلتون حل میشه.