behnam3000
دوشنبه 05 بهمن 1394, 09:50 صبح
با سلام خدمت دوستان
من یک کد جستجو دارم برای پارکینگ که با لینکیو نوشتم این پارکینگ تعداد رکورد هاش به میلون میرسه و حالا که تعداد رکورد ها زیاد شده برنامه هنگ میکنه با کمی جستجو متوجه شدم که در ado.net مشکل جستجو حل میشه میخواستم کد جستجو رو برام تبدیل کنید.
اگه روش بهتری هم دارید کدش رو برام بزارید
public void fillandsearch()
{
string start = TxtSearchDateVorodBig1.Text;
string end = TxtSearchDateVorodShort1.Text;
string startend = TxtSearchDateKhorojBig1.Text;
string endend = TxtSearchDateKhorojShort1.Text;
var query = from q in db.sabts
select q;
if (TxtSearchDateVorodBig1.Text.Length == 10 && TxtSearchDateVorodShort1.Text.Length == 10)
{
query = query.Where(s =>DC.shamsitomiladi(s.enterdate) >= DC.shamsitomiladi(start) && DC.shamsitomiladi(s.enterdate) <= DC.shamsitomiladi(end));
}
else
{
if (TxtSearchDateVorodBig1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enterdate) == DC.shamsitomiladi(start));
}
}
if (TxtSearchDateKhorojBig1.Text.Length == 10 && TxtSearchDateKhorojShort1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enddate) >= DC.shamsitomiladi(startend) && DC.shamsitomiladi(s.enddate) <= DC.shamsitomiladi(endend));
}
else
{
if (TxtSearchDateKhorojBig1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enddate) == DC.shamsitomiladi(startend));
}
}
if (TxtSearchSerialghebz.Text != string.Empty)
{
query = query.Where(s => s.serial.Contains(TxtSearchSerialghebz.Text));
}
if (TxtSearchNoyeMotor.Text != string.Empty)
{
query = query.Where(s => s.noemotor.Contains(TxtSearchNoyeMotor.Text));
}
if (TxtSearchRangMotor.Text != string.Empty)
{
query = query.Where(s => s.rangmotor.Contains(TxtSearchRangMotor.Text));
}
if (TxtSearchShomareTane.Text != string.Empty)
{
query = query.Where(s => s.shomaretane.Contains(TxtSearchShomareTane.Text)) ;
}
if (TxtSearchShomareMotor.Text != string.Empty)
{
query = query.Where(s => s.shomaremotor.Contains(TxtSearchShomareMotor.Text ));
}
if (TxtSearchShomarePlak.Text != string.Empty)
{
query = query.Where(s => s.shomarepelak.Contains(TxtSearchShomarePlak.Text) );
}
if (TxtSearchYeghanToghef.Text != string.Empty)
{
query = query.Where(s => s.yegan.Contains(TxtSearchYeghanToghef.Text));
}
if (TxtSearchTerkhes.Text != string.Empty)
{
query = query.Where(s => s.tarkhis.Contains(TxtSearchTerkhes.Text));
}
if (TxtSearchKerayeHaml.Text != string.Empty)
{
query = query.Where(s => s.keraye.Contains(TxtSearchKerayeHaml.Text));
}
}
در این کد هر جستجو بر اساس جستجو و بصورت آنی جستجو میکنه
تمامی فیلد ها در دیتا بیس بصورت nvarchar هست
من یک کد جستجو دارم برای پارکینگ که با لینکیو نوشتم این پارکینگ تعداد رکورد هاش به میلون میرسه و حالا که تعداد رکورد ها زیاد شده برنامه هنگ میکنه با کمی جستجو متوجه شدم که در ado.net مشکل جستجو حل میشه میخواستم کد جستجو رو برام تبدیل کنید.
اگه روش بهتری هم دارید کدش رو برام بزارید
public void fillandsearch()
{
string start = TxtSearchDateVorodBig1.Text;
string end = TxtSearchDateVorodShort1.Text;
string startend = TxtSearchDateKhorojBig1.Text;
string endend = TxtSearchDateKhorojShort1.Text;
var query = from q in db.sabts
select q;
if (TxtSearchDateVorodBig1.Text.Length == 10 && TxtSearchDateVorodShort1.Text.Length == 10)
{
query = query.Where(s =>DC.shamsitomiladi(s.enterdate) >= DC.shamsitomiladi(start) && DC.shamsitomiladi(s.enterdate) <= DC.shamsitomiladi(end));
}
else
{
if (TxtSearchDateVorodBig1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enterdate) == DC.shamsitomiladi(start));
}
}
if (TxtSearchDateKhorojBig1.Text.Length == 10 && TxtSearchDateKhorojShort1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enddate) >= DC.shamsitomiladi(startend) && DC.shamsitomiladi(s.enddate) <= DC.shamsitomiladi(endend));
}
else
{
if (TxtSearchDateKhorojBig1.Text.Length == 10)
{
query = query.Where(s => DC.shamsitomiladi(s.enddate) == DC.shamsitomiladi(startend));
}
}
if (TxtSearchSerialghebz.Text != string.Empty)
{
query = query.Where(s => s.serial.Contains(TxtSearchSerialghebz.Text));
}
if (TxtSearchNoyeMotor.Text != string.Empty)
{
query = query.Where(s => s.noemotor.Contains(TxtSearchNoyeMotor.Text));
}
if (TxtSearchRangMotor.Text != string.Empty)
{
query = query.Where(s => s.rangmotor.Contains(TxtSearchRangMotor.Text));
}
if (TxtSearchShomareTane.Text != string.Empty)
{
query = query.Where(s => s.shomaretane.Contains(TxtSearchShomareTane.Text)) ;
}
if (TxtSearchShomareMotor.Text != string.Empty)
{
query = query.Where(s => s.shomaremotor.Contains(TxtSearchShomareMotor.Text ));
}
if (TxtSearchShomarePlak.Text != string.Empty)
{
query = query.Where(s => s.shomarepelak.Contains(TxtSearchShomarePlak.Text) );
}
if (TxtSearchYeghanToghef.Text != string.Empty)
{
query = query.Where(s => s.yegan.Contains(TxtSearchYeghanToghef.Text));
}
if (TxtSearchTerkhes.Text != string.Empty)
{
query = query.Where(s => s.tarkhis.Contains(TxtSearchTerkhes.Text));
}
if (TxtSearchKerayeHaml.Text != string.Empty)
{
query = query.Where(s => s.keraye.Contains(TxtSearchKerayeHaml.Text));
}
}
در این کد هر جستجو بر اساس جستجو و بصورت آنی جستجو میکنه
تمامی فیلد ها در دیتا بیس بصورت nvarchar هست