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

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

کاربر سایت

mohammad100

عضویت از 1392/08/27

چگونه با استفاده از linq انتخاب رندمی داشته باشم؟

  • چهارشنبه 27 خرداد 1394
  • 11:09
تشکر میکنم

چگونه تعدادی سطر را به صورت رندمی در پایگاه داده با استفاده از linq انتخاب کنم؟

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 خرداد 1394
  • 11:15
var customers = db.Customers
                  .Where(c => c.IsActive)
                  .OrderBy(c => Guid.NewGuid())
                  .FirstOrDefault();

 

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 11:36

همچین پیامی به من داده : وقتی می زارم 

Repeater3.DataSource = i;

An invalid data source is being used for Repeater3. A valid data source must implement either IListSource or IEnumerable.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 خرداد 1394
  • 11:37

اگر به دیتا سورس وصل شده باید آخر کوئری از .ToList() استفاده کنی

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 11:42

کد من به صورت زیر است: گزینه Tolist قبول نمی کنه .

 var db = new linqDataContext();
        var img = (from p in db.Tbl_Products select p).Take(6);
        var i = db.Tbl_SellOffers.OrderBy(c => Guid.NewGuid()).FirstOrDefault();
        Repeater3.DataSource =i;
        Repeater3.DataBind();

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 خرداد 1394
  • 11:45
  var i = db.Tbl_SellOffers.OrderBy(c => Guid.NewGuid()).ToList();

 

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 11:51

الان همه سطر رو انتخاب می کنه. من 20 تا سطر دارم که فقط می خوام 6 تا شو به صورت رندمی نمایش بده .

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 خرداد 1394
  • 11:52
  var i = db.Tbl_SellOffers.OrderBy(c => Guid.NewGuid()).Take(6).ToList();

 

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 11:59

الان 6 تای اول رو بر می گردونه .می خوام یه بار 6 تای اول یه بار 6 تای دوم و ... رو به صورت اتوماتیک نشون بده

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 13:21

از این 20 تا سطر 6 تا به صورت تصادفی انتخاب بشه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 خرداد 1394
  • 13:27

الان این رندوم برمیگردونه نه 6 تای اول

کد رو قرار دادید ؟

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 13:41

قرار دادم ولی بازم 6تای اول رو بر می گردونه 

 var db = new linqDataContext();
        //var img = (from p in db.Tbl_Products  select p).Take(6);
        //var i = db.Tbl_Products.OrderBy(c => Guid.NewGuid()).Take(6).ToList();
        var i = db.Tbl_Products.OrderBy(c => Guid.NewGuid()).Take(6).ToList();
        Repeater3.DataSource =i;
        Repeater3.DataBind();

 

کاربر سایت

mohammad100

عضویت از 1392/08/27

  • چهارشنبه 27 خرداد 1394
  • 14:09

مشکلو پیدا کردم باید به صورت زیر نوشته بشه 

var db = new linqDataContext();
        var img = (from p in db.Tbl_Products.AsEnumerable() orderby Guid.NewGuid() select p).Take(6);
        Repeater3.DataSource =img;
        Repeater3.DataBind();

 

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

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

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

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