PDA

View Full Version : ساختن Query مشتق از چند عبارت



hatam64
سه شنبه 31 اردیبهشت 1392, 16:52 عصر
با سلام خدمت دوستان
من میخوام یه کوئری توی LINQ بنویسم که عملگرش را از یک DropDownList بگیره و مقداری که باید مقایسه بشه رو از یه DropDownList دیگه بگیره.راستش نمیدونم چطوری اینا رو با هم ادقام کنم که به عنوان یک کوئری واسه LINQ قابل درک باشه.ممنون میشم راهنمایی کنید
واسه اینکه دوستان متوجه بشن تصویر فرمم رو میذارم.
مرسی

tooraj_azizi_1035
سه شنبه 31 اردیبهشت 1392, 17:33 عصر
سلام
باید با DynamicLINQ کار کنید: http://blog.nitriq.com/HowToCreateALinqStatementFromAString.aspx
بعد از دانلود لینکی که گفته و اضافه کردن اون به پروژه می تونید به این شکل عبارت LINQ بنویسید:



IEnumerable<Person> allPeople = GetAllPeople();
foreach(var person in allPeople.Where("Age > 10").OrderBy("Age"))
{
//notice the above arguments are strings and not lambdas
//this makes it a lot easier to build everything ad-hoc
Console.WriteLine(person.Age + " - " + person.FirstName);
}

hatam64
چهارشنبه 01 خرداد 1392, 06:53 صبح
سلام
باید با DynamicLINQ کار کنید: http://blog.nitriq.com/HowToCreateALinqStatementFromAString.aspx
بعد از دانلود لینکی که گفته و اضافه کردن اون به پروژه می تونید به این شکل عبارت LINQ بنویسید:



IEnumerable<Person> allPeople = GetAllPeople();
foreach(var person in allPeople.Where("Age > 10").OrderBy("Age"))
{
//notice the above arguments are strings and not lambdas
//this makes it a lot easier to build everything ad-hoc
Console.WriteLine(person.Age + " - " + person.FirstName);
}


ممنون از پاسختون
با عرض پوزش میتونم خواهش کنم در مورد این کد یه ذره توضیح بدید،راستش من تازه شروع به کار با LINQ کردم
مثلاً اونجایی که شما گذاشتید 10<Age ، توی فرم من عملگر متغیر و نوع عملگر رو کاربر انتخاب میکنه
بازم ممنون

tooraj_azizi_1035
چهارشنبه 01 خرداد 1392, 12:51 عصر
شما باید به این شکل گزاره شرطی تون رو بسازید و به WHERE ارسال کنید:

.Where(string.Join("HardDisk", comboOperator.Text, comboValue.Text))

ونوس
سه شنبه 29 بهمن 1392, 22:57 عصر
من باید ی برنامه بنویسم که شرط جستجو براساس انتخاب 85 چک باکس به حالت and و or هست می تونید من را راهنمایی کنید؟مرسی