PDA

View Full Version : اگه چندتا Combobox روي فرم داشته باشيد، چطور با سريعترين روش اونا رو با اطلاعات Database پر مي كنيد؟



odiseh
پنج شنبه 06 خرداد 1389, 11:50 صبح
سلام

فرض كنيد كه يه برنامه تحت ويندوز نوشته ايد كه يك از فرم هاي ورود اطلاعاتش ، داراي 5 تا Combobox هست. اين Combobox ها هركدوم بايد اطلاعات يكي جدول از بانك اطلاعاتي رو نشون بدن. پس تا اينجا يعني 5 تا جدول متفاوت در بانك اطلاعاتي داريم كه اطلاعاتشون در اين 5 تا Combobox بايد ريخته بشه.

خوب آيا شما براي پر كردن اين 5 تا، از 5 تا متغير جداگانه از نوع DataTable استفاده مي كنيد و اون DataTable ها رو دونه دونه با اطلاعات Database پر كرده و به خورد Combobox ها مي دين؟ غير اين راهي هستش؟

سوال من اينه كه بهترين و سريعترين روش پر كردن اين 5 تا چطوريه؟

amin1000
پنج شنبه 06 خرداد 1389, 11:59 صبح
http://www.barnamenevis.org/forum/showthread.php?t=149484
http://www.barnamenevis.org/forum/showthread.php?t=215059

odiseh
پنج شنبه 06 خرداد 1389, 12:03 عصر
amin1000
ضمن تشكر، لينكهايي كه گذاشته بوديد، نحوه پر كردن Combobox رو توضيح ميدادن در حاليكه سوال من اينكه كه سريعترين روش براي انجام اينكار چيه. نحوه پر كردن Combobox رو مي دونم.

Open-Source
پنج شنبه 06 خرداد 1389, 13:02 عصر
من کلا توی برنامه ها برای پر کردن از DataReader استفاده میکنم(توی 90 درصد برنامه ها هم از SP برای خواندن اطلاعات استفاده میکنم).
به نظر من سرعت این کار خوبه.
حالا نمیدونم روش از این سرع تر هم هستش؟؟!!:متفکر:

odiseh
پنج شنبه 06 خرداد 1389, 13:59 عصر
open-source
خوب پس شما به صورت Explicit ، كنترل هاي Combobox رو پرمي كنين. به عبارت ديگه از پروپرتي DataSource
رو مقداردهي نميكنين.

odiseh
شنبه 08 خرداد 1389, 09:42 صبح
از دوستان، كسي تا به حال در برنامه هايي كه كار كرده اند، هيچ كدوم در فرم هاشون چند تا Combobox نداشتن كه بخوان اونا رو با استفاده از Data Table پر كنند؟!

amin1000
شنبه 08 خرداد 1389, 09:53 صبح
من از data table استفاده میکنم .

sky_in_iran
شنبه 08 خرداد 1389, 09:56 صبح
سلام دوست عزيز
ميشه دليل اصرار شما بر روي data table بگيد چيه ؟
روش براي پر كردن زياده شما به دنبال چي هستي منظورت و واضح بگو منظور از سرعت چيه ؟ اينم بگم اگر منظورت در واكشي اطلاعات باشه از بانك زياد ربطي به اينكه اطلاعات و داخل چه شي نگهداري كني نداره حالا يا dataset يا datatable ، بستگي به نوع كدت براي خواندن از ديتابيس داره مثلا از reader استفاده كني يا adapter حالا خارج از اينا از sp استفاده كني يا كد sql رو تو برنامه بنويسي اما براي راهنمايي بهتر سوالت و بيشتر باز كن و توضيح بده
موفق باشي

odiseh
شنبه 08 خرداد 1389, 10:09 صبح
سلام
ببين مشكلي كه من باهاش برخورد كردم اينه كه براي پر كردن هر كدوم از اين 5 تا Combo مي بايست 5 تا متغير از نوع Data Table بگيرم و بعد دونه دونه اونا رو پر كنم و بقيه داستان.

من روش هاي پر كردن Combo رو مي دونم. حتي يكي از دوستان در مراحل اين تاپيك گفته كه از Data Reader استفاده مي كنه.

سوال من مشخصاً اينه كه اگه بخواهيم از Data Table استفاده كنيم، خوب اينكه روشجالبي نيست براي هر Combo يك Data Table جدا بگبريم و پرش كنيم و اونو به خورد اون Combo بديم. اگه هم نخواهيم براي هر Combo يك Data Table بگيريم و مثلا يه متغير از نوع Data Table داشته باشيم و اون رو پر كرده به خورد Combo اول بديم و بعد اون Data Table رو clear كنيم و بريم سراغ دومي ........آخر كار همه Combo ها داراي يك نوع اطلاعات خواهند بود يعني توي همشون اطلاعات آخرين جدولي كه باهاش Data Table مون رو پر كرديم.

1 - شما اگه از Data Table استفاده مي كنيد چيكار مي كنيد؟
2- آيا واقعاً استفاده از Data Reader سريع تر از روش مقداردهي DataSource مربوط به Combo هست؟

odiseh
یک شنبه 09 خرداد 1389, 08:46 صبح
دوستان باز هم منظور سوال نا مفهومه؟

sky_in_iran
یک شنبه 09 خرداد 1389, 09:59 صبح
دوسته عزيز نيازي به تعريف چندتا datatable نيست شما بيا يك dataset تعريف كن كه داخلش چندتا table هست خوب به نظر من اين راه بهتره خوب روشه ديگه ام استفاده از datatable به صورت آرايه اي يا باز روش ديگه استفاده از list ها يا همون كالكشن ها كه بيا يك كلاس تعريف كن مانند جدولت بعد اطلاعات و بر اساس اون كلاس داخل يك ليست ذخيره كن و ... بازم راه زياده تو براي انجام كارت خيلي راه ها هست كه ميتوني انتخاب كني با توجه به روند برنامت با توجه به الگوريتم كارت با توجه به برنامت كه چه حجمي از حافظه رو ميگيره رو وب هست يا ويندوز و ... ميتوني يك روش و انتخاب كني حالا ببين كدوم بهتره انتخابت و بكن اگه تو پياده سازي كد مشكلي داشتي بگو تا دوستان و اساتيد كمكت كنند ماهم در خدمتتون هستيم
موفق باشي

Open-Source
یک شنبه 09 خرداد 1389, 10:26 صبح
دوست عزیز.
علت اصرار شما برای استفاده از dt چیه؟!!
چرا نمیای از datareader استفاده کنی (سربار حافظه کمتر - سرعت بالاتر)؟!!

odiseh
یک شنبه 09 خرداد 1389, 11:59 صبح
دوست عزیز.
علت اصرار شما برای استفاده از dt چیه؟!!
چرا نمیای از datareader استفاده کنی (سربار حافظه کمتر - سرعت بالاتر)؟!!

وقتي كه از datareader استفاده مي كنيد، چطوري valueMember مربوط به آيتمي رو كه اضافه مي كنيد رو set مي كنيد؟

odiseh
یک شنبه 09 خرداد 1389, 12:04 عصر
دوسته عزيز نيازي به تعريف چندتا datatable نيست شما بيا يك dataset تعريف كن كه داخلش چندتا table هست


باشه. فرض كنيم كه روش شما رو در پيش گرفته ايم:
اول بايد يك dataset تعريف كنيم.
دوم بايد datatable ها رو دونه دونه پر كنيم و به dataset اضافه كنيم.

من به صورت لايه اي در برنامه ام كه تحت ويندوز هستش كار مي كنم و براي اينكه داده هاي database رو بدست بيارم، از datatable استفاده كرده ام و اون رو پر مي كنم.

با اين توضيح ، من بايد چه كنم ؟ آيا استفاده از dataset با توجه به موارد فوق كار درستيه؟ باتشكر