PDA

View Full Version : سوال: سرچ اطلاعات داخل دو کمبو باکس و نمایش در دیتاگرید



booloor_007
شنبه 03 دی 1390, 09:56 صبح
سلام ..ممنون میشم کمکم کنید...من در یک اپلیکیشن فرم ایجاد شده در visual studio2010 به زبان وی بی یک فرم جستجوی اطلاعات بر مبنای چند تکست باکس و دو کمبو باکس قرار دادم.. و نوشتم داده ها رو بر اساس موارد انتخابی از تکست باکسها و کمبو ها فیلتر کنه... جستجو بر اساس selected itemکمبو باکس اول و تمام تکست ها درست انجام میشه اما وقتی داده ای رو از کمبو باکس دوم انتخاب می کنم به هیچ وجه بر اساس اون اطلاعات جدول رو فیلتر نمیکنه..حتی اینکه چه داده ای از کمبو باکس دوم انتخاب شده هم تشخیص می ده ولی در آخر هیچ سطری رو در دیتاگرید نشون نمیده... در ضمن مقدار کمبوها رم دستی پر کردم و به جدول وصل نیستن ...
خواهش میکنم کمک کنید واقعا نمیدونم ایرادش چیه:ناراحت:

mgh64120
شنبه 03 دی 1390, 23:29 عصر
سلام دوست عزيز
اون قطعه كدي كه با اون عمل فيلتر رو انجام دادي برامون بزار.
موفق باشيد...

booloor_007
شنبه 03 دی 1390, 23:35 عصر
سلام .. من بایک کمبو باکس هم در یک فرم دیگه امتحان کردم ..باز نشد و هیچ رکوردی در دیتاگرید نشون نمیده این کده:
BindingSource1.DataSource = LibraryDataSet3
BindingSource1.DataMember = "table"
Me.BindingSource1.Filter = "memberid LIKE " & "'" & Trim(Me.txtid.Text) & "'"
dg.DataSource = BindingSource1
Me.dg.Refresh()

booloor_007
شنبه 03 دی 1390, 23:40 عصر
جالب اینکه از همین کد وقتی برای تکست باکس استفاده میکنم به راحتی جواب میده ولی برای کمبو باکس ها نه... البته رشته فیلتر رو درست میبینه ولی جواب غلطه

mgh64120
شنبه 03 دی 1390, 23:49 عصر
سلام
من اينجا كدي كه به كامبوباكس ربط داشته باشه نمي بينم.
چرا شما از خاصيت RowFilter در DataView استفاده نمي كنيد.
قبلا خودم در يك تاپيك مثالي زدم. يك نگاه بيندازيد.
http://barnamenevis.org/showthread.php?312874-فیلتر-اطلاعات-DAtaView
موفق باشيد...

booloor_007
شنبه 03 دی 1390, 23:53 عصر
شما میدونین دلیلش چیه؟ میتونید کمکم کنید؟ :ناراحت:

booloor_007
شنبه 03 دی 1390, 23:56 عصر
شرمنده اون کد تکست باکسه بود که گفتم جواب میده توی همون کد توی رشته بجای txtid که تکست باکس هست این رو گذاشتم
Trim(Me.combobox.SelectedItem.ToString) &

mgh64120
شنبه 03 دی 1390, 23:59 عصر
من فكر مي كنم شما در تنظيم مقادير براي عمل فيلتر اشتباه داريد.
اگه ممكنه تمام قطعه كدي كه عمل فيلتر در اون انجام ميشه بطور كامل بزاريد(حتي قسمتي كه در اون دو كامبوباكس هم در عمل فيلتر شركت دارند).
موفق باشيد...

booloor_007
یک شنبه 04 دی 1390, 00:05 صبح
ببینید من در فرمی از یک کمبو هم استفاده کردم باز نشد.. این کدها مربوط به فرمی هست که شامل یک کمبوئه... نتیجه فیلتر رو هم در دیتا گرید ویو میخوام نمایش بده
If combobox.SelectedItem.ToString <> "" Then
BindingSource1.DataSource = LibraryDataSet3
BindingSource1.DataMember = "tablesview"
Me.BindingSource1.Filter = "asarkind LIKE " & "'" & Trim(Me.combobox.SelectedItem.ToString) & "'"
dg.DataSource = BindingSource1
Me.dg.Refresh()
combobox.SelectedItem = ""
End If
تمام کدی که در دکمه جستجو گذاشتم و مربوط به کمبو باکسه همینه... خود کمبو رو هم دستی پر کردم با چند تا مقدار

booloor_007
یک شنبه 04 دی 1390, 00:06 صبح
نمیدونم آیا از چیزی غیر selected item باید استفاده کنم یا مشکل دیگه ای داره.... ممنون از پاسختون

booloor_007
یک شنبه 04 دی 1390, 00:13 صبح
همچنین مشکل مشابه رو با لود اطلاعات از سلولهای دیتاگرید در selected item کمبو دارم ...در رکوردهایی که در دیتاگرید دارم داده مربوطه در آیتم انتخاب شده کمبو باکس قرار نمیگیره

mgh64120
یک شنبه 04 دی 1390, 00:17 صبح
من كه اينجا مشكلي نمي بينم.
البته اينو بگم كه من از BindingSource براي فيلتر كردن داده هام در ديتاگريد پروژه هام استفاده نكردم.
به شما هم توصيه مي كنم كه همين عمل فيلتر رو توسط DataView انجام بديد. حتما نتيجه خواهيد گرفت.
راستي اين قطعه كد رو درون چه رويدادي قرار دادين؟شايد رويداد مورد نظر شما رخ نده؟
موفق باشيد.

mgh64120
یک شنبه 04 دی 1390, 00:27 صبح
همچنین مشکل مشابه رو با لود اطلاعات از سلولهای دیتاگرید در selected item کمبو دارم ...در رکوردهایی که در دیتاگرید دارم داده مربوطه در آیتم انتخاب شده کمبو باکس قرار نمیگیره
براي پر كردن كامبوباكس به روش زير عمل كن :


Dim DT As New DataTable
DA = New SqlDataAdapter("SELECT ID, Name FROM <TableName> WHERE ID = شرط مورد نظر", Con)
Con.Open
DA.Fill(DT)
ComboBox.DataSource = DT
ComboBox.DisplayMember = "Name"
ComboBox.ValueMember = "ID"

در اينجا مقدار Name در خاصيت Item كامبوباكس و ID در خاصيت Value ذخيره ميشه.
براي بدست آوردن Value در عمل فيلتر از خاصيت SelectedValue استفاده كنيد.
مثلا در اينجا شما ميخواهيد عمل فيلتر رو بر روي فيلد ID انجام دهيد.
خاصيت Item كامبوباكس رو با فيلد Name پر ميكنيد تا كاربر اسم مورد نظر رو انتخاب كنه.
همزمان با انتخاب Item از كامبوباكس ID مربوطه در SelectedValue انتخاب ميشه.

Me.BindingSource1.Filter = "ID = " & Trim(combobox.SelectedValue)

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

booloor_007
یک شنبه 04 دی 1390, 00:30 صبح
در رویداد کلیک باتن...متاسفانه منم نمیفهمم چرا جواب نمیده ..اگر غلط بود برای تکست باکس چرا جواب داد

booloor_007
یک شنبه 04 دی 1390, 22:20 عصر
دوست عزیز این دستور select که نوشتید برای چی هست؟چون من نمیخوام داده رو از جدول بیارم میخوام در خود برنامه وارد بکنم فقط

mgh64120
دوشنبه 05 دی 1390, 08:06 صبح
سلام دوست عزيز
بجاي SelectedItem از خاصيت Text كامبوباكس استفاده كن ببين جواب ميده؟
Me.BindingSource1.Filter = "asarkind LIKE '" & Trim(combobox.Text) & "'"
موفق باشيد...