مشکل در دریافت نتیجه از طریق Linq
سلام خدمت دوستان
بنده تازه کار هستم و قصد دارم یک پروژه مدیریت آموزشگاه رو امتحانی درست کنم. دوستان بنده از معماری سه لایه استفاده کردم. حالا بماند برای من که تازه وارد هستم چه مشکلاتی سر راهم وجود داشت. اما یه مشکلی دارم و خواب و خوراکو ازم گرفته. در بخش DataAccessLayer یه کلاس دسترسی به دیتابیس درست کردم و تمام متدها رو درونش نوشتم.
حالا اومدم یه متد نوشتم که بتونه تمام اطلاعات جدول مربوط به دانش آموزان رو در DatagridView نمایش بده.( خب این جواب داد و درست عمل کرد)
امااا مشکل اصلی ===>> اومدم یه متد دیگه درست کردم که بر اساس comboBox ایدی رو بگیره و به متد ارسال کنه و متد بیاد در query بر اساس اون آیدی اطلاعات رو select کنه و به یک آرایه پاس بده و من بتونم با استفاده از کلمه کلیدی ref در بخش پارامتر متد ، همون آرایه رو به بیرون منتقل کنم که مثلا در استفاده از حافظه بهینه عمل کرده باشم.( نخندینا بخدا تازه واردم :لبخند::لبخند::لبخند: )
خب حالا قصد دارم اطلاعاتی رو که از طریق آرایه به بیرون پاس داده میشه رو درون هرکدام از textBox های مرتبط با هر دیتا رو قرار بدم.( مثلا نام در textbox مربوط به خودش و نام خانوادگی هم در textbox مرتبط با خودش و .... ). و واقعا بلد نیستم. و خیلی گیج شدم. ممنون میشم راهنماییم کنید. کدهای متد رو هم براتون میذارم و اگه لطف کنید بگید کجای کارم مشکل داره ممنون میشم.
public void ViewDetails(int Id , ref string[] getStudent)
{
var query = (from a in Context.Students
where a.id == Id
select new { a.FirstName, a.LastName, a.DateBorn, a.CityBorn, a.StartTech, a.LevelLicense, a.QuestionTexts}).ToArray();
//------------ Loop For Add data into getStudent Array
for (int i = 0; i < getStudent.Length; i++)
{
for (int j = 0; j < query.Length; j++)
{
getStudent[i] = query[j].ToString();
}
}
}
نقل قول: مشکل در دریافت نتیجه از طریق Linq
سلام
شما باید یک کلاس شامل فیلدهایی که مقادیرشو در select تون دارید بسازید
getStudent رو لیستی از اون کلاس بگیرید
وموقع set کردن مقادیر به تکس باکس ها فقط کافیه در حلقه for اینطور بنویسید
textBox.Text=getStudent[i].FirstName;
منظورم از کلاس یه چیزی مثل public class CustomerOrderResult در این مثال
نقل قول: مشکل در دریافت نتیجه از طریق Linq
سلام دوست عزیز،
در مثالی که خودتون نوشتین وقتی که به آخر عبارت ToArray اضافه میکنید، خروجی رو به هر تعداد که باشه، به شکل آرایه میده بیرون، آرایه ای که هر کدام از خانه هاش شامل نوع خروجی تعربف شده شما در بخش select هست.
پس وقتی که شما میخوایین از این آرایه استفاده کنید، هر ایندکس آن شامل (a.FirstName, a.LastName, a.DateBorn, a.CityBorn, a.StartTech, a.LevelLicense, a.QuestionTexts) هست.
اما در مورد حلقه بعد از آن کاملا اشتباه هستش و من اصلا دلیل این کار شما رو نفهمیدم!!!!!!!!
اگر منظور شما برگرداندن بیش از یک رکورد با این روش هستش، پشنهاد میکنم از مفهوم listها استفاده کنید. که هم راحتر هست و هم اصولیتر و هم دستتون باهاش بازتره....!
اما در مثال بالا با توجه به سناریوی که خودتون تعرف کردین، چون آیدی طرف انتخاب شده و بر اساس اون جستجو میشه ، اگر ساختار دیتابیستون درست باشه، اصولا نباید بیش از یک رکورد برگردانه که برای اون هم یا آرایه ای به تعداد فیلد های که برمیگردانید در نظر به گیرید و با حلقه Foreach اطلاعات داخل "var query" رو خونده و به هر کدام از خانه های آرایه بدهید!!!! ولی باز هم اگه بخواهید اصولیتر پیش برین پیشنهاده بنده استفاده از کلاس هستش که برای اطلاعات دانش آموز طراحی بشه و خروجی عبارت رو با استفاده از کلاس به لایه بالاتر برگردونید...
انشاله که کمکتون بکنه...
موفق باشید...