PDA

View Full Version : عدم شناسایی دستورات linq در محیط asp.net



na3er-faraji
دوشنبه 01 آذر 1389, 15:35 عصر
سلام. من system.linq رو بالا صدا زدم اما بازم خطا میده. عکسو ببینید.

Mohandes2009
دوشنبه 01 آذر 1389, 16:30 عصر
نام جدولت را باید انتخاب کنی!! بعد from

na3er-faraji
دوشنبه 01 آذر 1389, 16:33 عصر
نه عزیزم. مطمئنی؟ میشه بگی چه جوری باید بنویسم این دستور رو؟؟؟

alonemm
دوشنبه 01 آذر 1389, 18:52 عصر
شما کلاسی از نوع Linq ساختید و جدولتون رو به اون درگ کردید؟

na3er-faraji
دوشنبه 01 آذر 1389, 19:07 عصر
من جدولم به صورت پویا ساخته میشه اصلا وصل دیتابیس نیست خودم سطر و ستون واسش اضاف میکنم . یک دیتا تیبل میسازم و توش سطر و ستون اضاف می کنم

Himalaya
دوشنبه 01 آذر 1389, 20:02 عصر
این 3 خط رو همینطوری نوشتم. (واسه ایده گرفتن). اگه دقیق تر میخوای باید کد بزاری اینجا . با عکس نمیشه.


int productId = 5;
DataTable dtProduct = new DataTable();
..............
IEnumerable<DataRow> query = dtProduct.AsEnumerable().Where(m => m.Field<int>("ProductID") == productId);

sgb110
دوشنبه 01 آذر 1389, 20:47 عصر
سلام
دیتاتیبل از نوع قابل شمارش نیست
باید این کار رو بکنید:


var res = (from p in dt.AsEnumerable() select p);

na3er-faraji
دوشنبه 01 آذر 1389, 22:48 عصر
سلام
دیتاتیبل از نوع قابل شمارش نیست
باید این کار رو بکنید:


var res = (from p in dt.AsEnumerable() select p);


دیگه خطا نگرفت. اما خروجیم رو تو عکس ببینید. دیتاتیبل داده داره.

sgb110
سه شنبه 02 آذر 1389, 16:13 عصر
نمی دونم واسه چی این کار رو دارید می کنید.
به نظرم اگه از لیست ها استفاده کنید خیلی بهتر باشه
اما می تونید برا بدست آوردن داده ها این کار رو تو مثال قبلی انجام بدید:


var res = (from p in dt.AsEnumerable() select new {name=p.ItemArray[0],age=p.ItemArray[1]} ).ToList();

na3er-faraji
سه شنبه 02 آذر 1389, 17:53 عصر
نمی دونم واسه چی این کار رو دارید می کنید.
به نظرم اگه از لیست ها استفاده کنید خیلی بهتر باشه
اما می تونید برا بدست آوردن داده ها این کار رو تو مثال قبلی انجام بدید:


var res = (from p in dt.AsEnumerable() select new {name=p.ItemArray[0],age=p.ItemArray[1]} ).ToList();



خوب من دو تا دیتا تیبل دارم که یکیش از دیتابیس پر میشه و یکی رو دستی میسازم و میخام این دو تا رو به هم ربط بدم. شما چه روشی رو پیشنهاد می کنید؟؟؟؟

sgb110
سه شنبه 02 آذر 1389, 19:43 عصر
یعنی می خوایی این دو تا رو join کنی؟


var res = (from p in dt.AsEnumerable() join q in dt2.AsEnumerable() on p.ItemArray[2] equals q.ItemArray[0]
selectnew { name = p.ItemArray[0], age = p.ItemArray[1] ,id=q.ItemArray[0] }).ToList();


با فرض اینکه ستون 3 جدول اولی کلید اصلی واسه ستون 1 جدول دومی

na3er-faraji
سه شنبه 02 آذر 1389, 20:07 عصر
آقا ممنون از کمکتون. دستور شما کار میکنه. اما مساله اینه که دیگه خروجی این دستور مستقیم به دیتا گرید بایند نمیشه؟؟؟ کسی راه حل ساده تری سراغ نداره؟؟؟

saeidgab
سه شنبه 02 آذر 1389, 20:24 عصر
آقا ممنون از کمکتون. دستور شما کار میکنه. اما مساله اینه که دیگه خروجی این دستور مستقیم به دیتا گرید بایند نمیشه؟؟؟ کسی راه حل ساده تری سراغ نداره؟؟؟
متد ToList رو زدی، باید جواب بده. چه errorیی میده؟

na3er-faraji
سه شنبه 02 آذر 1389, 20:34 عصر
آره زدم. برنامه رو خط به خط اجزا میکنم . می بینم که متغیر خروجی پر میشه. اما دیتاگرید خالی نشون داده میشه. هیچ خطایی هم نمیده

sgb110
سه شنبه 02 آذر 1389, 22:28 عصر
شاید مشکل از نام ستون هاست.
یه بار پروپرتی AutoGenerateColumns گرید رو برابر true کن ببین چی میشه

na3er-faraji
چهارشنبه 03 آذر 1389, 14:39 عصر
با تشکر از همه دوستان. درست شد.

sgb110
چهارشنبه 03 آذر 1389, 14:43 عصر
می تونی سورس برنامه رو بزاری؟