PDA

View Full Version : سوال: فیلتر داده ها در Dataset



4linecode.Administrator
جمعه 04 آذر 1390, 23:49 عصر
با سلام
Mani_rf (http://barnamenevis.org/member.php?81144-Mani_rf) اگه یروز ی کسی بشی چیکار معلوم نیست میخوای با بقیه بکنی خدا رحم کنه بلا بدور باشه واقعا
بگذریم
اساتید محترم چن بار این سوال از طرف بنده مطرح شد متاسفانه این بنده خدا (Mani_rf (http://barnamenevis.org/member.php?81144-Mani_rf)) اصلا توجیه نیست که من دنبال جواب ی مطلب علمی که در مورد برنامه نویسی هم هست، هستم. برای تفریح نیومدم بعدشم اخه دوستان ببینن علت حذف تاپیک من رو چی نوشته ایشون:"عنوان را به گونه ای مطرح کنید که بقیه متوجه بشن"
خب اگه من گنگ مطرحش کردم بس چرا جواب داده بودن به سوالم؟
سعی کن کمک دیگران باشی نه سوهان اعصاب. در هر حال لطفا این تاپیک رو حذف نکن تا من جوابمو بگیرم
مطئن باش بقیه متوجه عرض بنده هستن حالا تو نمیفهمیش دیگه مشکل خودته ولی خواهشا پاک نکن تاپیکو.
من تو VB6 بعد اینکه داده ها رو با Query فراخونی میکردم و میریختم داخل Recordset میتونستم با متد Filter داده ها رو فیلتر کنم. لطفا بگید در دات نت بعد اینکه داده ها رو Fill کردم داخل Dataset به چه طریق ابن عمل رو انجام بدم.
قبلا از زحمتای شما اقای(Mani_rf (http://barnamenevis.org/member.php?81144-Mani_rf))کمال تشکر رو دارم. بازم خواهش میکنم تاپیکمو حذف نکن بقیه متوجه میشن من منظورم از سوالم چیه

arash020
شنبه 05 آذر 1390, 05:32 صبح
سلام
سوالتون رو واضح تر بیان کنید.:متعجب::لبخندساده::چشمک :

4linecode.Administrator
شنبه 05 آذر 1390, 08:29 صبح
ما تو VB6 بعد اینکه داده ها مونو داخل یکی DataGrid نمایش میدادیم
برای اینکه بخوایم کاربر امکان فیلتر ازون داده رو داشته باشه
تو رویداد Change یک جعبه متن این دستور رو مینوشتیم
Recordset.Filter = "NameField like '% & txtFiter.text & "%'""
ازین طریق داده های داخل RecordSet فیلتر میشدن و دیگه نیازی نبود دوباره
یک Query بنویسیم
حالا من میخوام بدونم تو دات نت بعد اینکه داده ها مونو داخل Dataset میریزیم
و تو یک DataGridView نمایششون میدیم، تو رویداد Change ی جعبه متن چه دستوری
. یا از کدوم متد Dataset ابید استفاده کرد برای فیلتر کردن داده ها
البته یکی از کاربرای محترم اگه اشتباه نکنم اینکار رو با DataView آنجام دادن که
متاسفانه تاپیک حذف شد

tto_baran
شنبه 05 آذر 1390, 18:59 عصر
ببین این چطوره

mgh64120
شنبه 05 آذر 1390, 22:23 عصر
درود بر شما
با عرض خسته نباشيد خدمت شما tto_baran
در فايل ضميمه شما، به گونه اي عمل فيلتر انجام ميشه كه اطلاعات، فيلتر شده از ديتابيس فراخواني ميشه و اين كمي سرعت برنامه رو پايين مياره.
چون به ازاء هر كاراكتري كه شما در رويداد Textchanged تكست باكس تغيير ميدهيد، يكبار اطلاعات از ديتابيس فراخواني ميشه يعني اگر نام شخص مورد نظر 10 كاراكتر باشد 10 بار بايد اطلاعات فرخواني شود.
حال شما ميتوانيد يك بار كل اطلاعات رو فراخواني كرده و توسط Dataview عمل فيلترينك رو انجام دهيد. به اين صورت :

Dim DA As New SqlDataAdapter("Select * FROM table1",Con)
Dim DT As New DataTable
Con.Open
DA.Fill(DT)
Dim DV As New Dataview(DT)

تا اينجا اطلاعات جدول در DataView ذخيره شد حال براي فيلتر :

Dv.RowFilter= فيلد مورد نظر + عملگر مربوطه + شرط لازم
به طور مثال
DV.RowFilter = "Name Like 'Ali'"
يا
DV.RowFilter = "ID = 1"

موفق باشيد
بدرود

tto_baran
یک شنبه 06 آذر 1390, 00:06 صبح
ضمن تایید صحت فرموده های دوست عزیزمون mgh64120 خدمت سایر دوستان عرض میشود . که موضوع تاپیک فیلتر در دیتا ست میباشد . به همین دلیل بهتر دیدم که دقیقا طبق عنوان تاپیک نمونه را بنویسم و فیلتر در Dataview می تواند موضوع تاپیک دیگری باشد که mgh64120 عزیز پیشا پیش جوابشو فرمودند .

morteza_2009
چهارشنبه 09 آذر 1390, 22:12 عصر
همه اینا قبول .... دیتا ویو بهتر می تونه فیلتر کنه

فقط چطور نتیجه فیلتر رو تو دیتا گرید نشون بدیم ؟... datamember دیتا گرید که نمی تونه یه دیتا ویو باشه ؟!!! ..

mgh64120
چهارشنبه 09 آذر 1390, 22:51 عصر
سلام دوست عزيز


فقط چطور نتیجه فیلتر رو تو دیتا گرید نشون بدیم ؟... datamember دیتا گرید که نمی تونه یه دیتا ویو باشه ؟!!! ..

شما بايد خاصيت DataSource ديتاگريد رو DataView قراربدي.

DataGridview1.DataSource=DV

موفق باشيد.

Majid842
شنبه 30 اردیبهشت 1391, 19:35 عصر
من این کد را استفاده کردم جواب هم داد ولی یک سوال
چرا نمیتونم از این کد استفاده کنم به عملگر گیر میده
DV.RowFilter = "date_cheque BETWEEN '1390/10/10' AND '1390/11/11'"