PDA

View Full Version : جستجو در datagridview



Esy_Programmer
سه شنبه 09 مرداد 1386, 13:20 عصر
سلام و خسته نباشید.
می خواستم ببینم بهترین (سریعترین) راه جستجو در یک ستون datagridview چیه ؟(فرض کنید 100000 سطر داشته باشیم.)
(البته نمی خوام فیلتر بگیرم و می خوام همه سطر ها را نمایش بده)
و اگر بهترین راه جستجو binary search هست الگوریتم اون را برام بفرستید.
از کمکتون ممنونم.:عصبانی++:

Asad.Safari
سه شنبه 09 مرداد 1386, 23:28 عصر
پس شما که این قدر از #C تبلیغ می کنید کجائید؟
خیلی فوری هست.
کمک...................................

اصلا این لحنتون مناسب نیست !

+ اینکه نوشتن پروژه برای دیگران ممنوع است .

hdv212
سه شنبه 09 مرداد 1386, 23:49 عصر
یکی از بهترین راه برای جستجو در DatagridView، استفاده از دستور foreach هست، مثل این :

//define a new Datatable Object
DataTable dt = new DataTable();

//Copy Structure of Table to New DataTable Object (Schema)
dt = this.ds_ordres1.Orders.Clone();

foreach (DataGridViewRow _gridViewRow in this.dataGridView1.Rows)
{
if (_gridViewRow.Cells[1].Value != null && _gridViewRow.Cells[1].Value.ToString() == "VINET")
dt.ImportRow(this.ds_ordres1.Orders.Rows[_gridViewRow.Index]);
}

//Change DatagridView's DataSource to New DataTable Object
this.dataGridView1.DataSource = dt;

Esy_Programmer
چهارشنبه 10 مرداد 1386, 11:21 صبح
آقای 212 hdv این رو قبول دارم ولی سرعتش خیلی پائینه.(البته با جستجوی دودئی بهتر شد.)
و همچنین یه مشکله دیگه اینه که در مقایسه مقادیری که فارسی تایپ شده مشکل داره.
یعنی زمانی که CompareTo کنیم . نتیجه دو مقدار مساوی 1- هست. میدونید چرا؟
ممنون از لطفتون.

Esy_Programmer
چهارشنبه 10 مرداد 1386, 11:24 صبح
و اگر نخوایم از datagridview استفاده کنیم واسه جستجو باید چکار کنیم؟
البته ببخشید چندتا سوال رو توی یه تاپیک مطرح کردم...!!!

once4ever
چهارشنبه 10 مرداد 1386, 11:55 صبح
و اگر نخوایم از datagridview استفاده کنیم واسه جستجو باید چکار کنیم؟
البته ببخشید چندتا سوال رو توی یه تاپیک مطرح کردم...!!!
پس واسه چی از دیتاگریدویو استفاده کردی؟ واسه جستجو فقط؟!!
برای اینکه تمام اطلاعات بانک رو داشته باشی، یکی از بهترین راهها دیتاست هست که جستجوی سریعتری هم داره.

Esy_Programmer
چهارشنبه 10 مرداد 1386, 12:13 عصر
می شه لطف کنید چه طوری از طریق دیتا ست جستجو کنم؟
و واسه جستجوی رشته فارسی باید چه کار کنم؟

once4ever
چهارشنبه 10 مرداد 1386, 12:31 عصر
می شه لطف کنید چه طوری از طریق دیتا ست جستجو کنم؟
و واسه جستجوی رشته فارسی باید چه کار کنم؟
بعد از اینکه دیتاست پر کردی با تابع select میتونی مثل select اس کیو ال جستجو کنی


ds.Tables[0].Select("name='علی'")

Esy_Programmer
چهارشنبه 10 مرداد 1386, 14:27 عصر
بعد چه طور می تونیم به ستون خاصی از این سطر دسترسی داشته باشیم؟
مرسی از پاسختون.

once4ever
چهارشنبه 10 مرداد 1386, 15:39 عصر
یکم به خروجی این تابع دقت کن
یک آرایه از datarow میده که میتونی از اونها استفاده کنی
اگه فرض کنیم چیزی پیدا کرده باشه
مقدار ستون lastname اولین ردیف :

ds.Tables[0].Select("name='ali'")[0]["lastname"]