PDA

View Full Version : ds.table به جای SELECT کردن از بانکSQL



saber4166
پنج شنبه 24 مرداد 1387, 23:46 عصر
سلام
من میتونم به جای SELECT کردن اطلاعات با این دستور
SELECT * FROM TABLE WHERE NAME="ALI'
از بانک واستفاده در برنامه بیام از اطلاعاتی که قبلا در datagrid بوده استفاده کنم
منظورم اینه که به جای اینکه SELECT از بانک SQL بیام SELECT کنم از از درون
ds.table["tablename"]

و دیگه به بانکم کاری نداشته باشم هر عملیاتی که دارم رو همین نمونه که در RAM
ساختم استفاده کنم و دیگه اگر خواستم SELECT کنم از این ds.table ای
که در RAM دارم SELECT کنم

KambizZandi
جمعه 25 مرداد 1387, 00:36 صبح
بله ميتونيد
البته پيشنهاد من اينه که با LINQ کار کنيد
يعني روي DataTable با LINQ دستوراتتون رو بزنيد و از نتيجش لذت ببريد

saber4166
جمعه 25 مرداد 1387, 00:39 صبح
دوست عزیز میشه بیشتر کمکم کنید تا حالا در این مورد کار نکردم و نمیدونم
میشه یه تکه کد به من بدین

اَرژنگ
جمعه 25 مرداد 1387, 02:46 صبح
یعنی میخواهید تمام جدول را بریزید تویه رم؟ اگر که همه جدول را باهاش اینکار را بکنید اشتباه است، اگر که فقط یک مقدار رکوردها را باهاش اینکار را انجام بدید در سطح پائین کارتان پیش میره ولی به مشکلات دیگری مواجه میشید (اگر یکی دیگر رکورد را عوض کند چی میشه؟).

Alireza_Salehi
جمعه 25 مرداد 1387, 08:27 صبح
DataSet (http://msdn.microsoft.com/en-us/library/system.data.dataset(VS.80).aspx) و DataTable (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx) امکانات زیادی دارند و تقریبا بدون نیاز به دیتابیس میشه باهاشون کار کرد،

ولی باید در استفاده از اونها دقت کنید ، اول: همون طور که گفتند نباید همه اطلاعات رو توی رم لود کنید و به مقدار نیاز باید این کار انجام بشه، دوم این که اگر برنامه به طور همطمان توسط چند کاربر استفاده میشه باید به هماهنگی مختویات DataTable (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx) و DataSet (http://msdn.microsoft.com/en-us/library/system.data.dataset(VS.80).aspx) با محتویات Database دقت کنید ولی اگر برنامه تک کاربره باشه عموما مشکلی در این مورد نیست. سوم این که اگر زمان پاسخگویی برنامه وابسته به دیتا است حتما باید اطلاعات را در رم (DataTabel (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx) یا DataSet (http://msdn.microsoft.com/en-us/library/system.data.dataset(VS.80).aspx)) لود کنید و در واقع یک بار دیتا لود بشه ، استفاده بشه و یک بار هم ذخیره بشه.

ولی در نهایت DataTable (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx) و DataSet (http://msdn.microsoft.com/en-us/library/system.data.dataset(VS.80).aspx) یه مقداری کند هستند (مخصوصا متد Fill)، روش های مستقیم عملکرد بهتری دارند. LINQ هم که جای خود داره اگر می تونید حتما استفاده کنید.
LINQ: .NET Language-Integrated Query (http://msdn.microsoft.com/en-us/library/bb308959.aspx)
LINQ to ADO.NET (http://msdn.microsoft.com/en-us/library/bb399360.aspx)
Language-Integrated Query (LINQ) (http://msdn.microsoft.com/en-us/library/bb397926.aspx)

به طور کلی باید تعادلی بین استفاده از رم، سرعت برنامه و پیچیدگی پیاده سازی ایجاد کنید.