PDA

View Full Version : بهترین روش جستجو در دیتاست را معرفی کنید



man_iran
سه شنبه 20 شهریور 1386, 16:13 عصر
من یه روش برای جستجو در دیتاست بلدم اون را اینجا می نویسم اگر کسی از دوستان روش بهتری بلده اعلام کنه :

برای جستجو در دیتاست یک متد یا تابع دارم که یک رشته مثلا : "مدرسه" و ستون آن رشته مثلا : 2 را می گیرد و ستون دوم تمام سطرها را به وسیله حلقه می گرد هنگامی که آن رشته را پیدا کرد تمام ستون های آن سطر را به دیتاگردویو انتقال می دهد...

به نظر من روش فوق برای برنامه هایی که دارای اطلاعات بسیار زیادی باشند مفید نیست! حال اگر روش مفیدتر و سریعتری می دانید بیان کنه...

ghafoori
سه شنبه 20 شهریور 1386, 18:11 عصر
برای جستجو در دیتاست یک متد یا تابع دارم که یک رشته مثلا : "مدرسه" و ستون آن رشته مثلا : 2 را می گیرد و ستون دوم تمام سطرها را به وسیله حلقه می گرد هنگامی که آن رشته را پیدا کرد تمام ستون های آن سطر را به دیتاگردویو انتقال می دهد...
لازم به این کار نیست می توانستید از متد select دیتاتیبل استفاده کنید اگر باز جستجو کند بود می توانید از جستجو دودویی استفاده کنید فقط در این حالت حتما دادهها باید مرتب باشد

man_iran
سه شنبه 20 شهریور 1386, 18:18 عصر
لازم به این کار نیست می توانستید از متد select دیتاتیبل استفاده کنید اگر باز جستجو کند بود می توانید از جستجو دودویی استفاده کنید فقط در این حالت حتما دادهها باید مرتب باشد

اگر ممکنه دو روش را به صورت کد راهنمایی کنید...
اگر برنامه بزارید که دیگه خیلی خوب می شه
مرسی

ghafoori
سه شنبه 20 شهریور 1386, 18:35 عصر
روش اول به این صورت است

DataTable dt=new DataTable();
DataRow[] rows;
rows= dt.Select("fieldname='something'");
متد select یک ارایه از سطر ها را بر می گرداند

در مورد روش دوم این یک الگوریتم است دقیقا نمی دانم sqlserver یا ado.net از این روش برای جستجو استفاده می کنند اگر می کنند در چه شرایطی اما راه حل ان به این صورت است که لیست را مرتب می کنند سپس عنصر وسط را بدست اورده ان را مقایسه می کند اگر عنصر مورد نطر بود که هیچ اگر نبود بررسی می کنند که عنصر مورد نظر در لیست بالای عنصر وسط است یا پایین و بستگی به جواب این کار ادامه پیدا میکند هربار لیست به نصف کاهش می یابد این کار جستجو را بسیار سریع می کند

Alireza_Salehi
سه شنبه 20 شهریور 1386, 21:05 عصر
در مورد LINQ جستجو کن!
مثلا فرض کنید یک جدول با 2 ستون NAME , ID داریم حالا می خواهیم کسانی که ID بزرگتر از 5 دارندرا نتخاب کنیم:

DataSet1.CustomerDataTable dt=newDataSet1.CustomerDataTable();

//loading data...

var query = from r in dt
where r.ID > 5
selectnew { mID = r.ID, mNAME = r.NAME };


البته در آینده چون VS 2008 و NET 3.5 هنوز Beta 2 و نسخه اصلیش نیومده!