بالا بردن سرعت بایند اطلاعات دیتابیس access در DataGridView
دوستان من یک برنامه سی شارپی قدیمی دارم که با دیتابیس اکسس نوشته شده
دیتابیس هم روی سرور هست الان میخوام یه خورده سرعت برنامه رو بهینه کنم
توی دستورات insert و update اومدم از transaction استفاده کردم سرعت خیلی خیلی تغییر کرد(در واقع از این رو به اون رو شد) اما برای بایند کردن اطلاعات درون دیتاگرید ویو هر چی جستجو می کنم روش بهینه تری پیدا نمی کنم
در حال حاضر من از تکه کد زیر استفاده می کنم :
OleDbCommand OleDbCommand1 = new OleDbCommand();
OleDbCommand1.CommandType = CommandType.Text;
OleDbCommand1.CommandText = "SELECT * FROM my_table";
OleDbCommand1.Connection = con;
OleDbDataAdapter adapter = new OleDbDataAdapter(OleDbCommand1);
DataSet DataSet1 = new DataSet();
adapter.Fill(DataSet1, "my_table");
datagridview.DataSource = DataSet1.Tables["my_table"];
دوستان اگر کوئری بهینه تری به ذهن تون میرسه ممنون میشم راهنمایی کنید
متشکرم
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
سلام
شما وقتی از دیتا آداپتر استفاده می کنید دیگه نیازی به کامند و ... نیست ضمنا وقتی با یه تیبل کار می کنید از همون ابتدا برید سراغ دیتاتیبل. کلا 4 خط:
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from table", con);
DataTable dt = new DataTable();
adapter.Fill(dt);
datagridview.DataSource = dt;
برای نمایش هم می تونید گرید رو صفحه بندی کنید و در هر صفحه نهایتا 100 یا اگه مجبور شدید نهایتا 200 رکورد رو نمایش بدید.
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
Mahmoud Zaad
سلام
شما وقتی از دیتا آداپتر استفاده می کنید دیگه نیازی به کامند و ... نیست ضمنا وقتی با یه تیبل کار می کنید از همون ابتدا برید سراغ دیتاتیبل. کلا 4 خط:
OleDbDataAdapter adapter = new OleDbDataAdapter(OleDbCommand1, con);
DataTable dt = new DataTable();
adapter.Fill(dt);
datagridview.DataSource = dt;
برای نمایش هم می تونید گرید رو صفحه بندی کنید و در هر صفحه نهایتا 100 یا اگه مجبور شدید نهایتا 200 رکورد رو نمایش بدید.
سلام
آیا سورسی از صفحه بندی دارید که اطلاعات رو یکدفه لود نکنه؟
من اطلاعات خیلی زیادی در بانک دارم و چند سورس صفحه بندی دانلود کردم ولی همشون ابتدا کل دیتابیس رو Load میکردند، بعد از لود صفحه بندی میکردند که بدرد نمیخوره
اگر سورسی دارید ممنون میشم قرار بدید
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
Mahmoud Zaad
سلام
شما وقتی از دیتا آداپتر استفاده می کنید دیگه نیازی به کامند و ... نیست ضمنا وقتی با یه تیبل کار می کنید از همون ابتدا برید سراغ دیتاتیبل. کلا 4 خط:
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from table", con);
DataTable dt = new DataTable();
adapter.Fill(dt);
datagridview.DataSource = dt;
برای نمایش هم می تونید گرید رو صفحه بندی کنید و در هر صفحه نهایتا 100 یا اگه مجبور شدید نهایتا 200 رکورد رو نمایش بدید.
ممنون
خب اگر از commond استفاده نکنم پس دستور select رو کجا بنویسم
ویرایش :
چه جالب پست شما رو نقل قول کردم یه چیز دیگه نمایش داده شد
ممنون تست می کنم ببینم مشکل حل میشه یا نه
در کل من تعداد رکوردهام اصلا زیاد نیست ولی از اونجایی که دیتابیس روی شبکه هست یه خورده زمان میبره تا اتصال برقرا بشه
البته این حدس من هست فکر کنم مشکل از کانکشن استرینگ هم نیست چون برای هر دو یعنی هم سلکت هم اینسرت و آپدیت از یک کانکسن استفاده می کنم
به نظر مربوط به کوئری هست
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
Mahmoud Zaad
متاسفانه کارساز نبود
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
barman.ar16
ممنون
خب اگر از commond استفاده نکنم پس دستور select رو کجا بنویسم
ویرایش :
چه جالب پست شما رو نقل قول کردم یه چیز دیگه نمایش داده شد
ممنون تست می کنم ببینم مشکل حل میشه یا نه
در کل من تعداد رکوردهام اصلا زیاد نیست ولی از اونجایی که دیتابیس روی شبکه هست یه خورده زمان میبره تا اتصال برقرا بشه
البته این حدس من هست فکر کنم مشکل از کانکشن استرینگ هم نیست چون برای هر دو یعنی هم سلکت هم اینسرت و آپدیت از یک کانکسن استفاده می کنم
به نظر مربوط به کوئری هست
درسته پست رو ویرایش کردم.
اکسس روی شبکه مشکل داره ولی نه اینقدر.
حجم دیتابیس چقدره؟ اکسس در تب Database Tools یه گزینه ای داره به اسم Compact AND Repaire Database، می تونید با زدن اون آبجکت های اضافی داخل دیتابیس رو حذف کنید و حجم رو کاهش بدید، شاید روی سرعت موثر باشه.
تعداد فیلدهای جدول چندتاست؟ اگر تعداد فیلدها زیاده می تونید فقط فیلدهای مورد نیاز رو سلکت کنید.
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
Shadow_net
متاسفانه کارساز نبود
یعنی اجرا نشد یا مشکل دیگه ای وجود داره؟
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
نقل قول:
نوشته شده توسط
Mahmoud Zaad
یعنی اجرا نشد یا مشکل دیگه ای وجود داره؟
اجرا شد ولی اگر سورس رو نگاه کنید توی FormLoad اول اومده کلش رو Load کرده بعد دسته بندی کرده...
تقریباً همه سورس ها همین کارو میکنن
نقل قول: بالا بردن سرعت بایند اطلاعات دیتابیس اکسس در دیتاگریدویو
اون اشتباه کرده، برای اینکه تعداد کل رکوردهای دیتابیس و تعداد صفحات رو محاسبه کنه اینکار رو کرده. شما به جای اون کار، در لود فرم یه سلکت بزنید و تعداد کل رکوردها رو به دست بیارید و ادامه کار مثل همونه. یه مقدار تغییر جزیی شاید نیاز باشه.
محاسبه تعداد رکوردها
select count(*) from tbl