PDA

View Full Version : datagridview



happy65_sh
چهارشنبه 10 بهمن 1386, 10:08 صبح
سلام
دوستای عزیز من یک datagridview دارم و یک textbox . میخواهم باوارد شدن حروف توسط کاربر در textbox سطری که ستون name آن با حرف تایپ شده ، آغاز شده select بشه در واقع با تایپ هر حرف توسط کاربر به سطر موردنظرش در صورت وجود نزدیک بشه من برای پیدا کردن سطر از دستور زیر استفاده کردم :

dt.Select("name like '" + textbox.Text + "%'");

ودر واقع سطر مورد نظر راپیدا می کنم ولی من با شماره اون سطر کار دارم که نمیدونم چطور پیدا کنم.
امیدوارم منظورم رارسونده باشم.ممنون میشم کمک کنید.
در ضمن از جستجو هم استفاده کردم اما چیزی پیدا نکردم.

hassan razavi
چهارشنبه 10 بهمن 1386, 10:12 صبح
متد Select یک Datatable ، مقادیر برابر با شرط را از نوع Datarow برمی گردونه و بر روی خود Datatable اعمال نمیکنه.
برای هدف شما باید از Dataview و متد Rowfilter آن استفاده کنید. البته با متد سازندش هم میشه فیلتر انجام داد.

happy65_sh
چهارشنبه 10 بهمن 1386, 10:21 صبح
متد Select یک Datatable ، بر روی خود Datatable اعمال نمیکنه.
میشه بیشتر توضیح بدید.

برای هدف شما باید از Dataview و متد Rowfilter آن استفاده کنید. البته با متد سازندش هم میشه فیلتر انجام داد.
میشه اگه مثالی دارید بذارید.
چون کد زیر را نوشتم اما نمی دونم چطور باید کاررا ادامه بدهم

dataView1.RowFilter = "name like '" + textbox.Text + "%'";

ممنون

hassan razavi
چهارشنبه 10 بهمن 1386, 10:45 صبح
شما فرض کنید که یک DataTable بنام myDataTable دارید که به DataGride تون وصله.


String filter=,"name like '" + textbox.Text + "%'";
Dataview dv=new DataView(myDataTable ,filter,"",DataViewRowState.CurrentRows);
DataGrideView1.Datasource=dv;

یا


DataView dv=new DataView(myDataTable);
dv.RowFilter=filter;
Datagride1.Datasource=dv;

happy65_sh
چهارشنبه 10 بهمن 1386, 10:55 صبح
ممنون از راهنماییتون
ولی راهی برای برگرداندن index سطر مورد نظر وجود نداره.

hassan razavi
چهارشنبه 10 بهمن 1386, 11:08 صبح
ببخشید دوست عزیز من منظورتون رو حالا متوجه شدم.
از متد مربوط به DataView استفاده کنید. dv.Find

happy65_sh
چهارشنبه 10 بهمن 1386, 12:38 عصر
استفاده کردم ولی خطای زیر را میده
Find finds a row based on a Sort order, and no Sort order is specified.
در ضمن گریدم را با SqlDataAdapter وبه صورت order by پرکرده ام.

hassan razavi
چهارشنبه 10 بهمن 1386, 12:50 عصر
اول باید Dataview.Sort را به فیلد مورد نظرتون نسبت دهید. بعد متد Find بر اساس فیلد مشخص شده در Sort اقدام به جستجو میکنه. ولی دیگه نمیتوندی از like استفاده کنید.
مثلا باید 'احمدی' کاملا تایپ شود تا find شود و 'اح' تنها کافی نیست