PDA

View Full Version : کوئیری سرچ



reza97
شنبه 30 شهریور 1392, 10:30 صبح
سلام
من برای سرچ خودم اینو نوشتم



SqlDataAdapter sdr = new SqlDataAdapter("select * from tblbank where sale=1 and state=1 and and address like N'%'+@txtsearch+'%' ", con)




خوب این بدون مشکل تقریبا کار میکنه
اما چرا تقریبا چون بعضی از موراد رو میبینم هست اما در نتیجه سرچ نمیاره؟؟؟؟دلیلش چی میتونه باشه؟

حالا من میخوام نتیجه سرچ جدا از address مثلا از فیلد mahdodeh هم بگیره یعنی از دو قسمت مقایسه کنه که باید از or استفاده کنم مثل
address or mahdodeh like......
اما چون قبل اون با اعداد and شده به مشکل میخوره
چطوری من اینو میتونم بنویسم که از چند فیلد نتایج رو مقایسه کنه و بیاره ؟(مثلا همزمان از فیلد آدرس و محدوده و خیابان بررسی کنه و نمایش بده)
با تشکر

General-Xenon
شنبه 30 شهریور 1392, 13:31 عصر
سلام
من برای سرچ خودم اینو نوشتم



SqlDataAdapter sdr = new SqlDataAdapter("select * from tblbank where sale=1 and state=1 and and address like N'%'+@txtsearch+'%' ", con)




خوب این بدون مشکل تقریبا کار میکنه
اما چرا تقریبا چون بعضی از موراد رو میبینم هست اما در نتیجه سرچ نمیاره؟؟؟؟دلیلش چی میتونه باشه؟

حالا من میخوام نتیجه سرچ جدا از address مثلا از فیلد mahdodeh هم بگیره یعنی از دو قسمت مقایسه کنه که باید از or استفاده کنم مثل
address or mahdodeh like......
اما چون قبل اون با اعداد and شده به مشکل میخوره
چطوری من اینو میتونم بنویسم که از چند فیلد نتایج رو مقایسه کنه و بیاره ؟(مثلا همزمان از فیلد آدرس و محدوده و خیابان بررسی کنه و نمایش بده)
با تشکر

سلام...
SELECT * FROM [tblbank] WHERE [sale]=1 OR [state]=1 OR [address] LIKE N'%@txtsearch%'
اما اگر مثلا مقادیر ثابت هم داری و چند Like رو میخوای استفاده کنی به این صورت.....
SELECT * FROM [tblbank] WHERE [sale]=1 AND [state]=1 AND [address] LIKE N'%@txtsearch% OR [FIELD 2] LIKE N'%@txtsearch%'

به این صورت که مقدار Sale,State حتما باید = 1 باشه و بعد از اینکه این شروط رو برقرار کرد حالا عملیات Like ما بین فیلد ها رو انجام میده.

reza97
شنبه 30 شهریور 1392, 16:19 عصر
دوست عزیز ممنونم
اما به نظرتون چرا خیلی از نتایج رو نمیاره؟؟؟؟
الان نتیاج سرچ رو نگاه میکنم برای بعضی جاها میاره اما برای بعضی قسمت ها نمیاره؟؟؟
دلیلش چی میتونه باشه؟

General-Xenon
شنبه 30 شهریور 1392, 17:56 عصر
دوست عزیز ممنونم
اما به نظرتون چرا خیلی از نتایج رو نمیاره؟؟؟؟
الان نتیاج سرچ رو نگاه میکنم برای بعضی جاها میاره اما برای بعضی قسمت ها نمیاره؟؟؟
دلیلش چی میتونه باشه؟

باید بررسی کنی ببینی Query که پاس میدی چی هست . از چه نوعی و مواردی که Select کردی چه مقادیری رو پذیرش میکنه..

reza97
شنبه 30 شهریور 1392, 21:49 عصر
باید بررسی کنی ببینی Query که پاس میدی چی هست . از چه نوعی و مواردی که Select کردی چه مقادیری رو پذیرش میکنه..

میشه بیشتر توضیح بدید؟؟؟

Mohammad_dn
شنبه 30 شهریور 1392, 23:47 عصر
به نظر من به خاطر این بعضی ها رو نمیاره که تو یه جمله ی واحد و به هم پیوسته رو جستو جو میکنی....تو باید مثل موتور های جستو جو عمل کنی...
اول متنتو داخل یه string بریز بعد یه از دستور split استفاده کن و کلمه هارو از هم جدا کن...(' ') strn.split ----بعد اونا رو تو یه string بریز اما قبل و بعد هر کلمه یه علامت درصد بزار..
مثلا:

جمله برای سرچ:محمد دلیلی

string ی که در نهایت برای دستور like هست:%محمد%دلیلی%

من خودم از همین روش استفاده کردم و جواب گرفتم

reza97
یک شنبه 31 شهریور 1392, 10:02 صبح
به نظر من به خاطر این بعضی ها رو نمیاره که تو یه جمله ی واحد و به هم پیوسته رو جستو جو میکنی....تو باید مثل موتور های جستو جو عمل کنی...
اول متنتو داخل یه string بریز بعد یه از دستور split استفاده کن و کلمه هارو از هم جدا کن...(' ') strn.split ----بعد اونا رو تو یه string بریز اما قبل و بعد هر کلمه یه علامت درصد بزار..
مثلا:

جمله برای سرچ:محمد دلیلی

string ی که در نهایت برای دستور like هست:%محمد%دلیلی%

من خودم از همین روش استفاده کردم و جواب گرفتم

دوست عزیز ممنون
فقط یه سوال مثلا وقتی در تکست باکس متن رو وارد کرد اولا چطور با spilt جدا میکنیم ؟؟؟
کووری را به این صورت بنویسم ؟ که وقتی spilt کردیم و هر کدوم رو در str1 ,str2,str3 ریختیم؟

like N'%'+@str1+'%' OR street like N'%'+@str2+'%' OR adres like N'%'+@str3+'%'