PDA

View Full Version : سوال: جستجو در گرید



negar_1366
چهارشنبه 06 مرداد 1389, 11:57 صبح
وقت بخیر
من قبل از اینکه این پست رو بزنم تو همین سایت زیاد سرچ زدم.ولی نتونستم مشکلم رو برطرف کنم.
من یه تکست باکس دارم که میخوام موقعی که داخلش شروع به تایپ میکنم کلمه یا حرف مورد نظرم رو
داخل گریدم روی یه فیلد خاصش جستجو کند و داخل گریدم برام لیست کنه.
این کدم براش نوشتم ولی جواب نمیده.
میشه لطف کنید بگید ایرادش کجاست؟


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim selectDR() As DataRow
Dim SearchPattern As String = "Name Like'%" + TextBox1.Text + "%' "
selectDR = Table.Select(SearchPattern)
DataGridView1.DataSource = selectDR
End Sub

vahab2010
چهارشنبه 06 مرداد 1389, 12:58 عصر
در رویداد textchange کادر متنی ای که میخوای عمل جستجو رو انجام بده کد زیر رو بنویس


"ad.selectcommand.commandtext="select * from namtable where nam like @n
ad.selectcommand.parametrs("@n").value=text1.text+"%" o

در قسمت لود فرم برای تعریف متغیرت از کد زیر استفاده کن
ad.selectcommand.parametr.add("@n",sqldbtype.nvarchar," ") o

این کد باعث میشه اگه من در داخل تکسم حروفی رو تایپ کنم دیتا گرید خودکار اون رکوردی که داخل فیلد نامش حروف من وجود دارد رو فعال کنه

reza1357
چهارشنبه 06 مرداد 1389, 13:42 عصر
وقت بخیر
من قبل از اینکه این پست رو بزنم تو همین سایت زیاد سرچ زدم.ولی نتونستم مشکلم رو برطرف کنم.
من یه تکست باکس دارم که میخوام موقعی که داخلش شروع به تایپ میکنم کلمه یا حرف مورد نظرم رو
داخل گریدم روی یه فیلد خاصش جستجو کند و داخل گریدم برام لیست کنه.
این کدم براش نوشتم ولی جواب نمیده.
میشه لطف کنید بگید ایرادش کجاست؟


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim selectDR() As DataRow
Dim SearchPattern As String = "Name Like'%" + TextBox1.Text + "%' "
selectDR = Table.Select(SearchPattern)
DataGridView1.DataSource = selectDR
End Sub

سلام ،

برای اینکار چندین روش وجود داره بستگی به طریقه برنامه نویسی شما داره ولی با توجه به خواسته شما بهتره که از این روش استفاده کنید :
- بهتره گرید رو به یک BindingSource بایند کنید.
- در قسمت TextChanged این دستور رو بزنید :

BindingSource.Filter = "Filedname like '*" & TextBox.Text & "*' "

پیروز باشید

negar_1366
چهارشنبه 06 مرداد 1389, 19:29 عصر
ممنون از لطفتون

ولی میتونم بپرسم ایراد کد خودم چی بود؟ :متفکر:

negar_1366
پنج شنبه 07 مرداد 1389, 10:19 صبح
خواهشاً کمـــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــکم کنید

vbworm
پنج شنبه 07 مرداد 1389, 14:51 عصر
فکر میکنم شکل صحیح دستور LIKE به این صورت باشه :



Select FIELDS from TABLE where FIELD like('%YOURTEXT%')




Dim DT As DataTable
Dim myCommand As SqlDataAdapter = New SqlDataAdapter("", YOUR CONNECTIONSTRING)
myCommand.SelectCommand.CommandText = "Select * from TABLE where FIELD like ('%" & text1.text & "%')"
myCommand.Fill(DT)
DataGridView1.DataSource=DT

negar_1366
شنبه 09 مرداد 1389, 10:39 صبح
وقت بخیر
برنامم رو کامل نوشتم
فقط نمیدونم چرا اصلا رویداد changetext اجرا نمیشه اصلا وارد زیرروالش نمیشه
چرا؟؟؟

یه مشکله دیگه
الان دیگه هیج شیئ جدیدی نمیتونم به فرمم اضافه کنم و شیئ های قبلی هم تغیر ظاهری روشون اعمال نمیشه
؟؟؟؟ :گریه:

nasim bahari
شنبه 09 مرداد 1389, 18:05 عصر
سلام..........

نگار جان اگه تاریخ سیستم رو تغییر دادی......اون رو به حالت قبل برگردون......الته قبل از این کار ابتدا از منوی Build گزینه ReBuild رو انتخاب کن و پروژه رو دوباره ساتزی کن به احتمال زیاد مشکلت حل میشه ....

موفق باشی....

vbworm
شنبه 09 مرداد 1389, 20:03 عصر
این مشکل رو من زیاد باهاش برخورد کردم. مسیر کامپایل برنامه رو عوض کن درست میشه. البته اگه از DLL خاصی استفاده کردی اونو توی مسیر جدیدت کپی کن.:لبخندساده:

negar_1366
شنبه 09 مرداد 1389, 22:53 عصر
از هر دوتاییتون ممنونم
لطف کردین.....

ولی متاسفانه مشکل حل نشد.جواب نمیده....
واقعا چنین خطاهایی برای من دیوانه کننده است :عصبانی++:

vbworm
شنبه 09 مرداد 1389, 22:54 عصر
خطای چی؟ مگه نگفتید تغییراتی که می دین موقع اجرای برنامه اعمال نمیشه؟

negar_1366
شنبه 09 مرداد 1389, 23:26 عصر
بله...
منظورم همین بود :لبخند:

vbworm
یک شنبه 10 مرداد 1389, 00:04 صبح
مسیر کامپایل رو از توی Properties عوض کردین؟ ( تصویر زیر )

negar_1366
یک شنبه 10 مرداد 1389, 09:58 صبح
بله...
درست نشد...
هر مسیری میتونه باشه؟!!!

negar_1366
یک شنبه 10 مرداد 1389, 10:36 صبح
درست شد :تشویق:
هر چی پوشه داخل پوشه های bin و obj بود پاک کردم.از سر گرفتم.
درستید.............

negar_1366
یک شنبه 10 مرداد 1389, 11:30 صبح
دوستان، مشکل این کد کجاست که این warninig رو میده؟؟؟

Private Sub tlspEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlspEdit.Click

Dim fEdit As New FrmEdit
Dim row2 As DataSet1.tableRow
If Bind.Current IsNot Nothing Then
fEdit.txtName.Text = row2.name
fEdit.txtfamily.Text = row2.family
fEdit.txttell.Text = row2.tell
fEdit.txtmobile.Text = row2.mobile
If fEdit.ShowDialog = Windows.Forms.DialogResult.OK Then
row2.name = fEdit.txtName.Text
row2.family = fEdit.txtfamily.Text
row2.tell = fEdit.txttell.Text
row2.mobile = fEdit.txtmobile.Text
End If
End If

End Sub

hero4000
یک شنبه 10 مرداد 1389, 17:49 عصر
دوست عزيز وارنينگ بخاطر اينه که شما هنوز Row2 رو مقدار دهي نکردي و داري ازش مقدار ميگيري

توي خط Dim row2 As DataSet1.tableRow اگه بعد از As يک کلمه New بذاري مشکلت حل ميشه

negar_1366
یک شنبه 10 مرداد 1389, 18:38 عصر
این کاری که گفتین رو اعمال کردم وارنینگم از بین رفت و در عوض خطای زیر برام ایجاد شد.....:متفکر:

hero4000
دوشنبه 11 مرداد 1389, 08:01 صبح
دوست عزيز اين خطا رو توي کدوم خط ميده لطفا توضيحاتتون رو کامل کنيد

من در مورد برنامه اي که شما نوشتين چيزي نميدونم مثلا اصلا اون DataSet1 چي هست که tableRow از اعضاش هست

درضمن اون خطائي که من مي بينم در مورد خطي هست که توش rb داره در صورتي که توي کدهاي شما همچين چيزي رو نديدم

negar_1366
چهارشنبه 13 مرداد 1389, 21:29 عصر
ممنون از لطفتون، مشکلم حل شد....



سلام ،

برای اینکار چندین روش وجود داره بستگی به طریقه برنامه نویسی شما داره ولی با توجه به خواسته شما بهتره که از این روش استفاده کنید :
- بهتره گرید رو به یک BindingSource بایند کنید.
- در قسمت TextChanged این دستور رو بزنید :

BindingSource.Filter = "Filedname like '*" & TextBox.Text & "*' "

پیروز باشید

فقط یه مورد دیگه در مورد مشکل قبلیم...
من اگه بخوام روی همه ی فیلدام جستجو را انجام بده با ید چیکار کنم.
منظورم اینه که مثلا اگه من کلمه "محم" را تایپ کردم.مثلا هم داخل نام هام و هم داخل نام خانوادگی هام بگرده. مثلا اگه یه رکورد دارم که اسمش محمد هست را جزء نتایج جستجو نمایش بده و اگه یه رکورد دیگه هم دارم که نام خانودگیش محمدی هست اون رو هم جزء نتایج جستجو نمایش بده.

ممنون

nasim bahari
چهارشنبه 13 مرداد 1389, 22:00 عصر
ممنون از لطفتون، مشکلم حل شد....




فقط یه مورد دیگه در مورد مشکل قبلیم...
من اگه بخوام روی همه ی فیلدام جستجو را انجام بده با ید چیکار کنم.
منظورم اینه که مثلا اگه من کلمه "محم" را تایپ کردم.مثلا هم داخل نام هام و هم داخل نام خانوادگی هام بگرده. مثلا اگه یه رکورد دارم که اسمش محمد هست را جزء نتایج جستجو نمایش بده و اگه یه رکورد دیگه هم دارم که نام خانودگیش محمدی هست اون رو هم جزء نتایج جستجو نمایش بده.

ممنون

and و یا or

به همین سادگی..................

موفق باشید