مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

maryam yasini

عضویت از 1392/09/22

Random

  • یکشنبه 14 دی 1393
  • 13:08
تشکر میکنم

سلام دوستان

چطور می تونم کدی بنویسم که تعدادی از محصولاتم روبصورت رندوم نشون بده بطوری که هر محصول واسه یک گروه محصول باشه

بیشتر هم سر قسمت دوم مشکل دارم . ممنون می شم اگر راهنماییم کنید

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

webman

عضویت از 1392/09/12

  • جمعه 19 دی 1393
  • 01:17

سلام

1- شما باید یه جدول "گروه کالا" داشته باشد

2 - در جدول "کالا" ها یه کلید خارجی به جدول "گروه کالا" بزنید

3 -  هنگام ثبت ؛ هر کالایی که ثبت می کنید گروه کالا رو هم براش مشخص کنید

حالا راهکار کلی اینه که اول شناسه همه ی گروه کالا های موجود در بانک رو انتخاب کنید و درون یک شی یا آرایه بریزید.بعد در یه foreach روی مقادیر، بازای هرگروه، کالاهای اون گروه رو انتخاب کنید و متناظر با تعدادشون یه عدد رندم ایجاد کنید و یکی از کالاهای گروه رو انتخاب کنید.

اگه به کد یا راهنمایی بیشتری نیاز دارید جواب این دو سوال روهم درج کنید

الف :آیا این قسمت ها (جدول گروه کالا و کلید خارجی به اون) رو دارید ؟

ب : از entity framework  استفاده می کنید یا کد های ado.net

باتشکر ، پیروز باشید

کاربر سایت

maryam yasini

عضویت از 1392/09/22

  • جمعه 19 دی 1393
  • 11:54

آقای محترم و عزیز با تشکر از پاسخگویی شما

بله من جدول گروه کالا و کلید خارجی به اون رو دارم و از entity framework استفاده می کنم .

من یک linq data source گذاشتم که در رویداد selecting اون دوتا جدول کالا و گروه کالا رو  join کردم بطوریکه سه تا از کالاهام رو بصورت رندوم نشون میده (من به عنوان گروه کالا هم احتیاج دارم )حالا می خوام هر کدوم از این کالا ها واسه یک گروه باشه

ممنون میشم اگر کدی که توضیحشو دادید رو در اختیارم بگذارید

کاربر سایت

webman

عضویت از 1392/09/12

  • جمعه 19 دی 1393
  • 16:58

باسلام مجدد 

public List<Kala> getRandomKalaList()
        {
            var kalaGroups = GetAllKalaGroup();//  در این قست تمامی گروه کالا ها را در این متغیر می ریزیم 

            var randomKalaList = new List<Kala>();

            foreach (var kalaGroup in kalaGroups)
            {
                var kalaList = GetKalaByKalaGroup(kalaGroup.id);// در این قسمت بر اساس شناسه گروه کالا ، تمامی کالاهای یک گروه را انتخاب میکنیم و در متغیر می ریزیم
                var rand = new Random();// ایجاد شیء جدید از کلاس رندم
                var id = rand.Next(0, kalaList.Count());// ایجاد یک عدد تصادفی از بین کالا های این گروه و ذخیره دراین متغیر
                randomKalaList.Add(kalaList[id]);// افزودن کالایی که ایندکس آن برابر با عدد تصادفی انتخاب شده است ، به لیست کالا های تصادفی
            }

            return randomKalaList;
        }

GetAllKalaGroup متدی است که با کد linq تمام عناصر گروه کالا را برمیگرداند

(GetKalaByKalaGroup(kalaGroup.id متدی است که کالاهای هم گروه را بر اساس شناسه گروه انتخاب و بر می گرداند

 

برای اینکه نام گروه کالا رو هم داشته باشید باید از ViewModel استفاده کنید و به جای انتخاب kalaList از kalaViewModelList بهره ببرید

البته اگه براتون آشنا نیست باید کمی در موردش مطالعه بفرمایید.(خیلی ساده اما کاربردی است)

یک راهکار هم استفاده از View های جداول در Sql می باشد

کاربر سایت

maryam yasini

عضویت از 1392/09/22

  • شنبه 20 دی 1393
  • 00:22

خیلی خیلی سپاسگذارم .امیدوارم همبشه موفق و سربلند باشید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)