PDA

View Full Version : سوال: جستجوی تلفیقی



baran_mahdavi
پنج شنبه 21 مرداد 1389, 13:47 عصر
سلام
اگر بخواهیم براساس چند فیلد جستجو را انجام دهیم غیر از به کارگیری elseif متعدد ، راه دیگری هست ؟
من در یک برنامه مجبورم همزمان بر اساس 10 فیلد عملیات جستجو را انجام دهم. مقدار if ها 2 به توان 10 میشود. که راه منطقی نیست.
کسی میتونه کمکم کنه؟
موفق باشید.

vandermond
پنج شنبه 21 مرداد 1389, 13:52 عصر
دوست عزيز
سوئيچ (switch) رو براي همين ساختن. البته نفهميدم چرا 1024 تا ميشه:متفکر: ولي اگه خيلي زياد باشه هم راههاي جالبي رو ميشه پياده كرد. كد عمومي ميزني و ............ .
اگه مشكلي بود بگيد كه جواب بدم. الان بيشتر از اين نميتونم:چشمک:

MSN_Issue
پنج شنبه 21 مرداد 1389, 14:31 عصر
اگه بخواید از توی دیتابیس جستجو کنید میتونید با یک کوئری مناسب این کار رو انجام بدید ... !
این کوئری رو ببینید :

select * from Tname where name='masoud' and family = 'jafari'

mahdi87_gh
پنج شنبه 21 مرداد 1389, 16:50 عصر
دوست عزیز از روش زیر هم می توانید استفاده کنید:

string conditions = "";
string selcommand = "Select * from Tablename";

if (txt1.Text.Trim() != string.Empty)
conditions = " field1=" + txt1.Text.Trim();

if (txt2.Text.Trim() != string.Empty)
{
if (conditions == string.Empty)
conditions = " field2=" + txt2.Text.Trim();
else
conditions += " And field2=" + txt2.Text.Trim();
}
...
if (conditions != string.Empty) selcommand+=" WHERE "+conditions;

ee_persian
پنج شنبه 21 مرداد 1389, 16:51 عصر
من واسه جستجو توی تمام فیلد های یکی از جدول های بانک اطلاعاتی یه دستور SQL نوشتم که از عملگر Like استفاده می کنه .... در اینجا من فقط از یک textbox به نام txtsearch به عنوان پارامتر جستجو استفاده کردم . در صورتی که شما چند فیلد یا textbox برای جستجو دارین ، اسم فیلد ها رو با textbox متناظرش هماهنگ کنین ....

ضمناً واسه بهتر دیدن دستور ، اول توی یه جایی مثل نرم افزار Word کپیش کنید ...

امیدوارم به دردتون بخوره .... موفق باشید ....




My_SqlCommand.CommandText = "select [name] as
'نام' ,[lname] as 'نام خانوادگي',[fname] as 'نام پدر',[tt] as 'تاريخ تولد',[km] as 'كد ملي',[city] as 'شهرستان',[reg] as 'منطقه',[vil] as 'منطقه',[ads] as 'آدرس',[kp] as 'كد پستي',[daem] as 'شماره دائمي',[etebari] as 'شماره اعتباري',[thome] as 'شماره منزل',[tkar] as 'شماره محل كار',[ir] as 'شماره ايرانسل',[shs] as 'شماره سند',[img] as 'عكس' from main where [name] like '" + txtsearch.Text + "%'" + " or [lname] like '" + txtsearch.Text + "%'" + " or [fname] like '" + txtsearch.Text + "%'" + " or [tt] like '" + txtsearch.Text + "%'" + " or [km] like '" + txtsearch.Text + "%'" + " or [city] like '" + txtsearch.Text + "%'" + " or [reg] like '" + txtsearch.Text + "%'" + " or [vil] like '" + txtsearch.Text + "%'" + " or [ads] like '" + txtsearch.Text + "%'" + " or [kp] like '" + txtsearch.Text + "%'" + " or [daem] like '" + txtsearch.Text + "%'" + " or [etebari] like '" + txtsearch.Text + "%'" + " or [thome] like '" + txtsearch.Text + "%'" + " or [tkar] like '" + txtsearch.Text + "%'" + " or [ir] like '" + txtsearch.Text + "%'" + " or [shs] like '" + txtsearch.Text + "%'";

vandermond
پنج شنبه 21 مرداد 1389, 16:56 عصر
من واسه جستجو توی تمام فیلد های یکی از جدول های بانک اطلاعاتی یه دستور SQL نوشتم که از عملگر Like استفاده می کنه .... در اینجا من فقط از یک textbox به نام txtsearch به عنوان پارامتر جستجو استفاده کردم . در صورتی که شما چند فیلد یا textbox برای جستجو دارین ، اسم فیلد ها رو با textbox متناظرش هماهنگ کنین ....

ضمناً واسه بهتر دیدن دستور ، اول توی یه جایی مثل نرم افزار Word کپیش کنید ...

امیدوارم به دردتون بخوره .... موفق باشید ....




My_SqlCommand.CommandText = "select [name] as
'نام' ,[lname] as 'نام خانوادگي',[fname] as 'نام پدر',[tt] as 'تاريخ تولد',[km] as 'كد ملي',[city] as 'شهرستان',[reg] as 'منطقه',[vil] as 'منطقه',[ads] as 'آدرس',[kp] as 'كد پستي',[daem] as 'شماره دائمي',[etebari] as 'شماره اعتباري',[thome] as 'شماره منزل',[tkar] as 'شماره محل كار',[ir] as 'شماره ايرانسل',[shs] as 'شماره سند',[img] as 'عكس' from main where [name] like '" + txtsearch.Text + "%'" + " or [lname] like '" + txtsearch.Text + "%'" + " or [fname] like '" + txtsearch.Text + "%'" + " or [tt] like '" + txtsearch.Text + "%'" + " or [km] like '" + txtsearch.Text + "%'" + " or [city] like '" + txtsearch.Text + "%'" + " or [reg] like '" + txtsearch.Text + "%'" + " or [vil] like '" + txtsearch.Text + "%'" + " or [ads] like '" + txtsearch.Text + "%'" + " or [kp] like '" + txtsearch.Text + "%'" + " or [daem] like '" + txtsearch.Text + "%'" + " or [etebari] like '" + txtsearch.Text + "%'" + " or [thome] like '" + txtsearch.Text + "%'" + " or [tkar] like '" + txtsearch.Text + "%'" + " or [ir] like '" + txtsearch.Text + "%'" + " or [shs] like '" + txtsearch.Text + "%'";

دوست عزيز براي بهتر ديدن كد لطفا شما كدتون رو توي تگ هاي مخصوص قرار بده.
اين سه تا مثلا: http://barnamenevis.org/forum/images/editor/code.gifhttp://barnamenevis.org/forum/images/editor/html.gifhttp://barnamenevis.org/forum/images/editor/php.gif

ببينيد ميشه اينطوري مثلا:

My_SqlCommand.CommandText = "select [name] as
'نام' ,[lname] as 'نام خانوادگي',[fname] as 'نام پدر',[tt] as 'تاريخ تولد',[km] as 'كد ملي',[city] as 'شهرستان',[reg] as 'منطقه',[vil] as 'منطقه',[ads] as 'آدرس',[kp] as 'كد پستي',[daem] as 'شماره دائمي',[etebari] as 'شماره اعتباري',[thome] as 'شماره منزل',[tkar] as 'شماره محل كار',[ir] as 'شماره ايرانسل',[shs] as 'شماره سند',[img] as 'عكس' from main where [name] like '" + txtsearch.Text + "%'" + " or [lname] like '" + txtsearch.Text + "%'" + " or [fname] like '" + txtsearch.Text + "%'" + " or [tt] like '" + txtsearch.Text + "%'" + " or [km] like '" + txtsearch.Text + "%'" + " or [city] like '" + txtsearch.Text + "%'" + " or [reg] like '" + txtsearch.Text + "%'" + " or [vil] like '" + txtsearch.Text + "%'" + " or [ads] like '" + txtsearch.Text + "%'" + " or [kp] like '" + txtsearch.Text + "%'" + " or [daem] like '" + txtsearch.Text + "%'" + " or [etebari] like '" + txtsearch.Text + "%'" + " or [thome] like '" + txtsearch.Text + "%'" + " or [tkar] like '" + txtsearch.Text + "%'" + " or [ir] like '" + txtsearch.Text + "%'" + " or [shs] like '" + txtsearch.Text + "%'";