PDA

View Full Version : تبدیل کوئری به لیست



damanpak
سه شنبه 07 بهمن 1393, 23:25 عصر
سلام به همه عزیزان
دوستان نوع متغیر MyVar در دستور زیر چیست؟
dim MyVar=(From F in CurrenDatabase.Drivers where F.Id=111 select F.Id,F.DriverName)
من در اصل میخوام این متغیر MyVar رو اول صفحه بصورت سراسری تعریف کنم تا هرکجا که دستور زیر رو اجرا کردم
MyGridView.DataSource=MyVar.Tolist()
نتیجه رو بتونم ببینم و این کار بعد از خطی که کوئری رو تعریف کردم انجام میشه
اما اگه بخوام نتیجه رو توی یه رویداد دیگه ببینم ممکن نیست:ناراحت::ناراحت:
بطور کلی میخوام بدونم آیا راهی هست که متغیر رو سراسری تعریف کرد و کوئری متغیر رو توی رویداد فرم لود بنویسیم
و هرکجا که خواستیم (به جز رویداد فرم لود) با استفاده از دستور MyGridView.DataSource=MyVar.Tolist() نتیجه رو ببینیم؟؟؟؟؟؟

ali_md110
جمعه 10 بهمن 1393, 15:40 عصر
دستورات شما یک IQueryable فیلتر شده از نوع Drivers هست که میتونید در هر جای برنامه صداش بزندید
اینجور پیاده سازی های نشتی دار به روش شما معمول نیست روشی که شما باید پیاده کنید اینه که یک Property از نوع List یا یک ObservableCollecttion از نوع کلاس Driversمعرفی کنید و درون این لیست دستورات خودتون رو بنویسید

public List<Drivers> GetDriversList()
{

var a = from d in Entity.Where(x => x.F== 11) select d;
return a.ToList();
}



MyGridView.DataSource=GetDriversList();

damanpak
یک شنبه 12 بهمن 1393, 11:41 صبح
سلام و تشکر بابت پاسخی که دادین
پاسخ شما در شرایطی صدق میکنه که من بخوام فقط داده ها رو فقط از جدول Driver بخونم
حال اگه داده ها رو از چندین جدول بخونم چطوری میشه هرجای فرمم صداش کنم؟

ali_md110
یک شنبه 12 بهمن 1393, 20:07 عصر
مشکل شما گرفتن کوئری از چند جدول هست یا بکارگیری متد گلوبال؟ من که متوجه نشدم!!!!!:متفکر:
اگر منظورتون چند جدول جداگانه هست باید به ازای هر مدل یک لیست مثل بالا بسازید و استفاده کنید
اگر منظورتون join جداول هست که میتونید از Include متد یا Navigation Property استفاده کنید

damanpak
دوشنبه 13 بهمن 1393, 00:35 صبح
سلام و تشکر مجدد بابت پاسخ تون
دوست عزیز مشکل من ساخت یک کوئری با جداول Join شده و تبدیل به لیست کردن این کوئری در هرکجای فرمم میباشد
مثلا در مثالی که شما فرمودین متغییر a بصورت سراسری تعریف شده و در یک رویه کوئری برای آن نوشته شود و در یک رویه دیگه کوئری نوشته شده رو بتونیم به بانک ارسال و پاسخ را دریافت کنیم