دوست خوبم آقایmrprestige
ازتون تشکر میکنم که تذکر میدید به دوستان چون باعث پیشرفت میشه
من هم ناراحت نشدم و خوشحال شدم
اما در مورد مطالبی که فرمودید :
اولا کدی که آقای Mahmoud.Afrad توی پست های بالا لینکش رو دادند ، اینه ( که میتونید خودتون مراجعه کنید ببینید ) :
string filter = string.Empty;
if (txtName.Text.Trim() != string.Empty)
{
filter += "name like '%" + txtName.Text.Trim() + "%' and ";
}
if (txtLastName.Text.Trim() != string.Empty)
{
filter += "lastname like '%" + txtLastName.Text.Trim() + "%' and ";
}
// check another textboxes
filter += " 1=1 ";
dt.DefaultView.RowFilter = filter;
اولا :
دقت کنید ایشون عملگر like رو برای ستونهای name و lastname استفاده کردند که از نوع رشته هستند نه int
filter += "name like '%" + txtName.Text.Trim() + "%' and ";
filter += "lastname like '%" + txtLastName.Text.Trim() + "%' and ";
من گفتم like رو نمیشه روی ستون int استفاده کرد قبلا کلی باهاش سر و کله زدم همینطوری الکی نگفتم .
شما گفتید عملگر like رو برای ستون از نوع int استفاده کردید ، من رو به شک انداختید. ( بنده مطلبی رو که مطمئن نباشم سعی میکنم نگم )
همچنین کدی هم که این دوستمون گفتند رو ببینید:
نوشته شده توسط
Imenam
سلام
کد را به صورت زیر اصلاح کنید:
binding1.Filter = string.Format("Convert(KodJFaliat , 'System.String') like '%{0}%'", txJFaliat.Text);
دقت کنید ایشون با استفاده از دستور Convert ابتدا مقدار ستون رو که از نوع int بوده ، تبدیل به string کردند بعد دستور like رو استفاده کردند :
Convert(KodJFaliat , 'System.String')
الآن با این تفاصیل احتمال میدم که شما اشتباه کردید و روی ستون از نوع int نبوده ، احتمالا یه ستون رشته ای بوده که توش عدد ذخیره کردید.
ازتون خواهش میکنم بدون دقت همینطوری کسی رو متهم به منحرف کردن دیگران نکنید.
دوما :
میشه بفرمایید که این مطلبی که من توی پست بعدی گفتم ( نقل قول زیر ) ایرادش چیه:
همونطوری که آقای مدیر فرمودند از کلمه کلیدی and توی رشته filter String استفاده کنید و یک یا چند شرط دیگه هم بنویسید