PDA

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



sajad_boj70
پنج شنبه 28 شهریور 1392, 09:41 صبح
سلام.بچه ها من یک فرم جست و جو به شکل زیر دارم
110921
و از این کد برای جست و جو استفاده میکنم :

// نوع ملک
string v = Request.QueryString["city"];
var query = k.melk.Where(a => a.city == v).ToList();
if (DropDownList1.SelectedItem.Text == "همه")
{
query = query.ToList();
}
else
{
string noe = DropDownList1.SelectedItem.Text.ToString();
query = query.Where(a => a.melk1 == noe).ToList();
}
// نوع واگذاری

if (DropDownList2.SelectedItem.Text == "همه")
{
query = query.ToList();
}
else
{
string vag = DropDownList2.SelectedItem.Text.ToString();
query = query.Where(a => a.vagozari == vag).ToList();
}

// زیربنا

if (DropDownList4.SelectedItem.Text == "همه" && DropDownList7.SelectedItem.Text == "همه")
{
query = query.ToList();
}
else if (DropDownList4.SelectedItem.Text != "همه" && DropDownList7.SelectedItem.Text != "همه")
{
int x = int.Parse(DropDownList4.SelectedValue);
int y = int.Parse(DropDownList7.SelectedValue);
query = query.Where(a => int.Parse(a.zirbana) > x && int.Parse(a.zirbana) < y).ToList();
}

// خواب

if (DropDownList3.SelectedItem.Value == "همه")
{
query = query.ToList();
}
else if (DropDownList6.SelectedItem.Value != "همه")
{
int khab = int.Parse(DropDownList3.SelectedValue);
query = query.Where(a => int.Parse(a.khab) == khab).ToList();
}

// طبقه

if (DropDownList6.SelectedItem.Value == "همه")
{
query = query.ToList();
}
else if (DropDownList6.SelectedItem.Value != "همه")
{
int tabaghe = int.Parse(DropDownList6.SelectedValue);
query = query.Where(a => int.Parse(a.tabaghe) == tabaghe).ToList();
}

// قیمت

if (DropDownList2.SelectedItem.Value == "همه")
{
query = query.ToList();
}

else if (DropDownList2.SelectedItem.Text == "خرید و فروش")
{
int min = int.Parse(DropDownList8.Text);
int max = int.Parse(DropDownList9.Text);
query = query.Where(a => int.Parse(a.gheimat) > min && int.Parse(a.gheimat) < max).ToList();
}
else if (DropDownList2.SelectedItem.Value == "رهن کامل")
{
int min = int.Parse(DropDownList8.Text);
int max = int.Parse(DropDownList9.Text);
query = query.Where(a => int.Parse(a.rahn) >= min && int.Parse(a.rahn) <= max).ToList();
query = query.Where(a => a.vagozari == DropDownList2.SelectedValue).ToList();
}
else if (DropDownList2.SelectedItem.Value == "اجاره کامل")
{
int min = int.Parse(DropDownList8.Text);
int max = int.Parse(DropDownList9.Text);
query = query.Where(a => int.Parse(a.ejareh) >= min && int.Parse(a.ejareh) <= max).ToList();
query = query.Where(a => a.vagozari == DropDownList2.SelectedValue).ToList();
}
else if (DropDownList2.SelectedItem.Value == "رهن و اجاره")
{
int min = int.Parse(DropDownList8.Text);
int max = int.Parse(DropDownList9.Text);
query = query.Where(a => int.Parse(a.rahn) <= min && int.Parse(a.ejareh) <= max).ToList();
query = query.Where(a => a.vagozari == DropDownList2.SelectedItem.Text).ToList();
}

// محدوده
string mah = Server.HtmlEncode(TextBox1.Text);

if (mah == null)
{
query = query.ToList();
}

else if (mah != null)
{
query = query.Where(a => a.mahdoode.Contains(mah)).ToList();
}
ListProduct.DataSource = query;
DataBind();




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

حالا به نظرتون مشکل از چیه؟؟
http://barnamenevis.org/images/misc/pencil.png

fakhravari
پنج شنبه 28 شهریور 1392, 11:15 صبح
قیمت مقدار پیشفرض بده.

monadifard
شنبه 30 شهریور 1392, 01:58 صبح
سلام دوست عزیز
آقای ابراهیمی خودشون در دسترس نیستند.
من به جای آقای ابراهیمی تست کردم
هنوز خطا میده

monadifard
دوشنبه 01 مهر 1392, 06:53 صبح
اساتید
کسی نمیتونه تو این مورد کمک کنه ؟
:لبخندساده:

fakhravari
شنبه 13 مهر 1392, 16:32 عصر
خطا معلومه.
مقدار ورودی خالی است.
با برک پوینت چک کن .

sajad_boj70
سه شنبه 16 مهر 1392, 12:37 عصر
نه خطا ربطی به خالی بودن نداره به خدا.شما خودت ون برید تو سایت و امتحان کنید : یک بار ملکی رو که وجود نداره جست و جو کنید و یک بار ملکی رو که وجود داره
http://amlak-shakeri.somee.com/default.aspx?city=1

543310
سه شنبه 16 مهر 1392, 16:17 عصر
نوع فیلد قیمت رو توی دیتابیس و همچنین سایت برسی کن

sajad_boj70
سه شنبه 16 مهر 1392, 16:34 عصر
نوع فیلد قیمت رو توی دیتابیس و همچنین سایت برسی کن
نوع فیلد nvarchar گرفتم

fakhravari
سه شنبه 16 مهر 1392, 16:57 عصر
قیمت باید int باشه
از دستور convert برای تبدیل استفاده کنint32

sajad_boj70
سه شنبه 16 مهر 1392, 17:03 عصر
قیمت باید int باشه
از دستور convert برای تبدیل استفاده کنint32
خب ما nvarchar رو با با convert به int32 تبدیل کردیم

fakhravari
سه شنبه 16 مهر 1392, 17:24 عصر
ببین در کل راحتت کنم باید دیباگ کنی. ببینی روی چه کنترلی خطا میده