PDA

View Full Version : سوال: جستجو در بانک بر اساس چند فیلد؟



mhemati
یک شنبه 01 تیر 1393, 19:28 عصر
با سلام
cmd.CommandText = "SELECT fish_joz.date_variz,fish_joz.code_pigiri,fish_joz. code_s_name,fish_joz.number_fish,fish_joz.number_h esab,fish_joz.mablagh," +
"(sabt_name.name_str+' '+sabt_name.family) as fullname,sabt_name.number_ghadir,sabt_name.bolok FROM (fish_joz INNER JOIN " +
" sabt_name ON fish_joz.code_s_name = sabt_name.code_s_name)" +
" where (sabt_name.family like '%" + txt_search.Text + "%') OR (sabt_name.name_str like '%" + txt_search.Text + "%') " +
"AND (fish_joz.date_variz Between '" + txt_date1.Date.ToString() + "' AND '" + txt_date2.Date.ToString() + "') " +
"AND (sabt_name.number_ghadir >'" + com_gh_az.Text + "' AND sabt_name.number_ghadir <'" + com_gh_ta.Text + "') " +
"AND (sabt_name.bolok >'" + com_b_az.Text + "' AND sabt_name.bolok <'" + com_g_ta.Text + "')" +

["AND (fish_joz.mablagh >'" + txt_mb1.Text + "' AND fish_joz.mablagh <'" + txt_mb2.Text + "')"
;

این کد درست عمل نمی کنه آیا استفاده از این روش کار اصولیه است ؟

parvizwpf
دوشنبه 02 تیر 1393, 01:27 صبح
روش اصولی نیست. معمولا از پارامترها استفاده میکنند برای پاس دادن مقداری به کوئری sql . عملکرد این کد که چرا اجرا نمیشه هم باید تست بشه که واقعا کوئری درست هست از لحاظ syntax یا خیر. الان فکر کنم فقط خودتون از این کوئری سر در بیارید

blackwidow64
دوشنبه 02 تیر 1393, 09:12 صبح
روش درست تر اینه که به اینصورت عمل کنید:
(@Param1 IS NULL OR (Field1=@Param1)) AND
(@Param2 IS NULL OR (Field2=@Param2)) AND
(@Param3 IS NULL OR (Field1=@Param3))