PDA

View Full Version : مشکل در جستجو به روش Linq



davidrobert
جمعه 06 شهریور 1394, 18:53 عصر
سلام دوستان من کد جستجو نوشتم به صورت پیش رفته به صورت linq جواب گرفتم ولی مشکلی که در این کد دارم میخوام تاریخ و مقادیر رشته دیگه رو همه رو با رویداد TextChange جستجو کنم که یکی وارد شد جسجو انجام بشه یا همش ولی مشکلی که دارم این هستش که کد تاریخ برای اختلاف مجبور جدا بنویسم و کد مروبط به کادر متن ها رو مجبورم جدا بنویسم بخاطر همین نمی دونم چطور این 2 تا رو با هم بنویسم اگه یک کادر متن وارد شد جستجو انجام بشه اگه تاریخ وارد شد اختلاف بین تاریخ بررسی بشه یا کلا وارد شد بر حسب رویداد TextChange جستجو کنه این فایل من هستش.
http://s6.picofile.com/file/8208802500/parking.7z.html
و این هم سورس جستجو من که مجبورم جدا بنویسم ولی جواب نمیگرم با هم مینویسم.
این کد جستجو برای تاریخ
void searchbutton()
{
var q = from tblsabt in db.sabts
where string.Compare(tblsabt.enterdate, TxtSearchDateVorodBig.Text) >= 0 &&
string.Compare(tblsabt.enterdate, TxtSearchDateVorodShort.Text) <= 0 //&&
//string.Compare(tblsabt.enddate, TxtSearchDateKhorojBig.Text) >= 0
//&& string.Compare(tblsabt.enddate, TxtSearchDateKhorojShort.Text) <= 0
select tblsabt;
//dataGridView1.DataSource = q.ToList();
//DateTime minTxtSearchDateVorodShortMiladi = DateTime.Parse(TxtSearchDateVorodShortMiladi.Text) ;
//DateTime maxTxtSearchDateVorodBigMiladi =DateTime.Parse(TxtSearchDateVorodBigMiladi.Text);
////DateTime minTxtSearchDateKhorojShortMiladi = DateTime.Parse(TxtSearchDateKhorojShortMiladi.Text );
////DateTime maxTxtSearchDateKhorojBigMiladi = DateTime.Parse(TxtSearchDateKhorojBigMiladi.Text);
//var q =
// from tblsabt in
// db.sabts.Where(
// x =>
// x.enterdatemiladi >= minTxtSearchDateVorodShortMiladi &&
// x.enterdatemiladi <= maxTxtSearchDateVorodBigMiladi )// &&
// //x.enddateMiladi >= minTxtSearchDateKhorojShortMiladi &&
// //x.enddateMiladi <= maxTxtSearchDateKhorojBigMiladi)
// select tblsabt;
dataGridView1.DataSource = q.ToList();
}
این هم کد جستجو برای کادر متن کلی
private void search()
{
try

{
//db.GetTable<sabt>()
var q = from tblsabt in db.sabts
// where string.Compare(tblsabt.enterdate, TxtSearchDateVorodBig.Text) >= 0 && string.Compare(tblsabt.enterdate, TxtSearchDateVorodShort.Text) <= 0 && string.Compare(tblsabt.enddate, TxtSearchDateKhorojBig.Text) >= 0
//&& string.Compare(tblsabt.enddate, TxtSearchDateKhorojShort.Text) <= 0
select tblsabt;
//if (TxtSearchSerialghebz.Text!="" && TxtSearchNoyeMotor.Text!="")
//{
if (Lblserialgebz.Text == "سریال قبض")
{
q = q.Where(s => s.serial.Contains(TxtSearchSerialghebz.Text));
}
if (LblNoyMotor.Text == "نوع موتور")
{

q = q.Where(f => f.noemotor.Contains(TxtSearchNoyeMotor.Text));
}

if (LblRangeMotor.Text == "رنگ موتور")
{
q = q.Where(s => s.rangmotor.Contains(TxtSearchRangMotor.Text));
}

if (LblShomareTane.Text == "شماره تنه")
{
q = q.Where(s => s.shomaretane.Contains(TxtSearchShomareTane.Text)) ;
}

if (LblShomareMotor.Text == "شماره موتور")
{
q = q.Where(s => s.shomaremotor.Contains(TxtSearchShomareMotor.Text ));
}

if (LblShomarePlak.Text == "شماره پلاک")
{
q = q.Where(s => s.shomarepelak.Contains(TxtSearchShomarePlak.Text) );
}

if (LblYeganToghefkonende.Text == "یگان توقیف کننده")
{
q = q.Where(s => s.yegan.Contains(TxtSearchYeghanToghef.Text));
}

if (LblKeraye.Text == "کرایه حمل")
{
q = q.Where(s => s.keraye.Contains(TxtSearchKerayeHaml.Text));
}

if (LblTerkhes.Text == "ترخیص")
{
q = q.Where(s => s.tarkhis.Contains(TxtSearchTerkhes.Text));
}




//DateTime maxTxtSearchDateVorodBigMiladi = DateTime.Parse(TxtSearchDateVorodBigMiladi.Text);
//DateTime minTxtSearchDateVorodShortMiladi = DateTime.Parse(TxtSearchDateVorodShortMiladi.Text) ;
//if (LblDatevorod.Text== "تاریخ ورود")
//{
// q =
// q.Where(
// d =>
// d.enterdatemiladi >= minTxtSearchDateVorodShortMiladi &&
// d.enterdatemiladi <= maxTxtSearchDateVorodBigMiladi);
//}
//DateTime maxTxtSearchDateKhorojShortMiladi = DateTime.Parse(TxtSearchDateKhorojShortMiladi.Text );
//DateTime minTxtSearchDateKhorojBigMiladi = DateTime.Parse(TxtSearchDateKhorojBigMiladi.Text);
//if (LblDatevorod.Text == "تاریخ خروج")
//{
// q =
// q.Where(
// d =>
// d.enddateMiladi >=minTxtSearchDateKhorojBigMiladi &&
// d.enddateMiladi <= maxTxtSearchDateKhorojShortMiladi);
//}
dataGridView1.DataSource = q.ToList();


//}
//else if (TxtSearchSerialghebz.Text=="" && TxtSearchNoyeMotor.Text=="")
//{
// showinfo();
//}
}
catch
{

}
}
ممنون میشم به همین روش کمک کنید شدیدا گیرم.

jaboli
جمعه 06 شهریور 1394, 19:48 عصر
سلام این لینک رو ببینید شاید کمک تون کرد
http://barnamenevis.org/showthread.php?504434-%D8%A8%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF%D9%87%D8%A7%DB%8C%D B%8C-%DA%A9%D9%87-%DB%8C%DA%A9-%D9%81%DB%8C%D9%84%D8%AF-%D8%A2%D9%86-%D8%B4%D8%A7%D9%85%D9%84-%D9%85%D8%AA%D9%86-%D9%88%D8%A7%D8%B1%D8%AF-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7%D8%B4%D8%AF