piroozman
شنبه 09 آبان 1388, 09:35 صبح
در پروژه ای مبتنی بر ADO.NET تیم حاضر،از دیتاست و سایر کلاس های مربوط به ADO.NET مانند DataTable ها، DataColumn ها، DataRow ها و . . . جهت کار با داده های موجود در دیتابیس استفاده کرده اند.
همانگونه که مستحضرید با استفاده از CmdText یا CmdStoreProcedure و با پیکر بندی تابع Fill مربوط به TableAdapter هر DataTable را پر کرده و با Bind کردن یک Component مانند DataGridView اطلاعات جداول موجود در بانک اطلاعاتی جهت نمایش و ویرایش در اختیار کاربر قرار می گیرد. البته روش های دیگری نیز برای این کار است که فعلا مد نظر این تاپیک نیست.
با این مقدمه کوتاه به سراغ مسلئه ای که این تاپیک قرار است آنرا بیان کند می روم. سئوالاتی که پس از پر کردن DataTable ها برای مطرح می شوند در چند قسمت زیر خلاصه شده است:
فرض کنید که یکی از جداول موجود در بانک اطلاعاتی بیش از 50000 رکود دارد. آیا انتقال این 50000 رکورد در یک DataTable که خود بر روی حافظه موقت یا RAM قرار دارد باعث ایجاد سربار و اشغال فضا نمی شود؟ اگر پاسخ مثبت است چه راهکاری برای حل این مشکل وجود دارد؟
برای جستجو در میان اطلاعات چه باید کرد؟. آیا باید از کلاسها و توابع مربوط به خود ADO.NET مانند کلاس DataView ها و توابع Find و Select به ترتیب مربوط به DataView و DataTable و . . . استفاده کرد و جستجو را در اطلاعات موجود در DataTable انجام داد و اگر پاسخ مثبت است چگونه باید این کار را کرد؟ اگر الگوریتم یا روش کاری مناسبی را می شناسید یا استفاده کرده اید لطفا بیان کنید؟ یا اینکه باید برای هر جستجو به دیتابیس وصل شده و اطلاعات مورد نظر کاربر را پس از یافتن در بانک اطلاعاتی وارد DataTable ها کرد؟ به نظر شما این باعث کندی جستجو نمی شود؟ یا به طور کلی کدام روش بهتر است و چرا؟
شیوه کاری مناسب برای جستجوی داده ها در بانک های اطلاعاتی یا DataTable ها چیست؟ قابل توضیح است که پروژه حاضر بیشتر متشکل از فرمهایی که حاوی DataGridView های Bind شده به DataSource ها هستند.
پیشنهاد شما در خصوص استفاده از LINQ در این خصوص چیست؟
اگر لازم است قسمتی را بیشتر توضیح بدهم لطف کنید اعلام کنید. از کسانی که به این تاپیک با حوصله پاسخ داده و بنده را در این راه کمک می کنند پیشا پیش تشکر می کنم.
همانگونه که مستحضرید با استفاده از CmdText یا CmdStoreProcedure و با پیکر بندی تابع Fill مربوط به TableAdapter هر DataTable را پر کرده و با Bind کردن یک Component مانند DataGridView اطلاعات جداول موجود در بانک اطلاعاتی جهت نمایش و ویرایش در اختیار کاربر قرار می گیرد. البته روش های دیگری نیز برای این کار است که فعلا مد نظر این تاپیک نیست.
با این مقدمه کوتاه به سراغ مسلئه ای که این تاپیک قرار است آنرا بیان کند می روم. سئوالاتی که پس از پر کردن DataTable ها برای مطرح می شوند در چند قسمت زیر خلاصه شده است:
فرض کنید که یکی از جداول موجود در بانک اطلاعاتی بیش از 50000 رکود دارد. آیا انتقال این 50000 رکورد در یک DataTable که خود بر روی حافظه موقت یا RAM قرار دارد باعث ایجاد سربار و اشغال فضا نمی شود؟ اگر پاسخ مثبت است چه راهکاری برای حل این مشکل وجود دارد؟
برای جستجو در میان اطلاعات چه باید کرد؟. آیا باید از کلاسها و توابع مربوط به خود ADO.NET مانند کلاس DataView ها و توابع Find و Select به ترتیب مربوط به DataView و DataTable و . . . استفاده کرد و جستجو را در اطلاعات موجود در DataTable انجام داد و اگر پاسخ مثبت است چگونه باید این کار را کرد؟ اگر الگوریتم یا روش کاری مناسبی را می شناسید یا استفاده کرده اید لطفا بیان کنید؟ یا اینکه باید برای هر جستجو به دیتابیس وصل شده و اطلاعات مورد نظر کاربر را پس از یافتن در بانک اطلاعاتی وارد DataTable ها کرد؟ به نظر شما این باعث کندی جستجو نمی شود؟ یا به طور کلی کدام روش بهتر است و چرا؟
شیوه کاری مناسب برای جستجوی داده ها در بانک های اطلاعاتی یا DataTable ها چیست؟ قابل توضیح است که پروژه حاضر بیشتر متشکل از فرمهایی که حاوی DataGridView های Bind شده به DataSource ها هستند.
پیشنهاد شما در خصوص استفاده از LINQ در این خصوص چیست؟
اگر لازم است قسمتی را بیشتر توضیح بدهم لطف کنید اعلام کنید. از کسانی که به این تاپیک با حوصله پاسخ داده و بنده را در این راه کمک می کنند پیشا پیش تشکر می کنم.