PDA

View Full Version : جست و جو در گرید با پارامتر



mrali.jalali
چهارشنبه 12 فروردین 1394, 20:35 عصر
گرید را با دستور زیر در فرم لود پر میکنم


LinqToDataDataContext db = new LinqToDataDataContext();
var query = from row in db.Contacts
where row.Act_Cont==true
; { select new { row.ID_Cont,row.Code_Cont,row.Name_Cont,row.Family _Cont,row.Mobile_Cont

; radGridView1.DataSource = query







129954




حالا میخام کاربر بتونه با کد و نام و نام خانوادگی و موبایل جست و جو (جست و جو همزمان با همه پارامترها)کنه با شرایط زیر
1-برای هر بار جست و جو نخوام select کنم یعنی کدهایی که در فرم لود نوشتم رو بنویسم.( میخام شبیه datatable عمل کنم)
2-کاربر بتونه همزمان با همه موارد جست و جو کنه و شرایط روی همه ستون های جدول اعمال بشه . مثلا اگر ali jalali را وارد کرد ردیف های 1 و 3 و 5 انتخاب بشه (با دکمه اسپیس موردها از هم جدا میشه و ترتیب وارد نمودن پارامترها مهم نباشه)

امیدوارم منظورمو رسونده باشم. ممنون

am_al_59
چهارشنبه 12 فروردین 1394, 20:51 عصر
اگر بخوای فقط یک قیلد رو برای موجود بودن چند کلمه چک کنی این شکلی میشه



string[] allWord = textBox1.text.Split(' ');
var query = (from contact in db.Contacts
where allWord .All(word => contact.name.Contains(word))
select contact );



اما اگر بخوای کنترل روی همه فیلدها انجام بشه اونوقت باید از فیلدهات یک عبارت بسازی و اونو چک کنی



var query = (from contact in db.Contacts
where allWord .All(word => (contact.name+contact.family+contact.phone).Contai ns(word))
select contact );

mrali.jalali
چهارشنبه 12 فروردین 1394, 21:04 عصر
اگر بخوای فقط یک قیلد رو برای موجود بودن چند کلمه چک کنی این شکلی میشه



string[] allWord = textBox1.text.Split(' ');
var query = (from contact in db.Contacts
where allWord .All(word => contact.name.Contains(word))
select contact );



اما اگر بخوای کنترل روی همه فیلدها انجام بشه اونوقت باید از فیلدهات یک عبارت بسازی و اونو چک کنی



var query = (from contact in db.Contacts
where allWord .All(word => (contact.name+contact.family+contact.phone).Contai ns(word))
select contact );








ممنون دوست عزیز. من کدهای زیر رو نوشتم ولی پیغام خطای زیر را داد

پیغام خطا :
Local sequence cannot be used in LINQ to SQL implementations of query operators except the Contains operator



کد :


LinqToDataDataContext db = new LinqToDataDataContext();
string[] allWord = txt_search.Text.Split(' ');
var query = (from contact in db.Contacts
where allWord .All(word => (contact.Name_Cont+contact.Family_Cont+contact.Mob ile_Cont).Contains(word))
select contact );

radGridView1.DataSource = query.ToList();

am_al_59
چهارشنبه 12 فروردین 1394, 22:00 عصر
اون خطا به خاطر اینه که وقتی شما داری از دستورات کوئری استفاده می کنی باید اول کل لیست کانتک هاتو بخونی و تبدیل به لیستش کنی بعد روش کوئری اجرا کنی خط




var query = (from contact indb.Contacts



تغییر بده به




var query = (from contact indb.Contacts.ToList()



توی گوگل هم خطاطو سرچ میکردی به حواب میرسیدی