PDA

View Full Version : نمایش رندوم ردیف از database



samiasoft
چهارشنبه 17 خرداد 1396, 17:06 عصر
سلام دوستان

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

میخواستم بصورت رندوم هربار یکی از ردیف ها رو برای من نمایش بدهد و ردیف تکراری رو نمایش نده.

برای این منظور میتوانم از فیلدی که اتونامبر هست و از عدد 1 تا 3000 هست کمک بگیریم که هربار یکی از این اعداد رو نمایش بدهد تا بتوانم ردیف موردنظر رو بخونم.


حال برای بدست اوردن عدد رندوم بین 1 تا 3000 چه تابعی به نظرتون مناسبه؟

دستور sql زیر رو اجرا کردم اما مقداری به من نداد !

cmd.CommandText = "SELECT rand,Field1,Field2 FROM Table2 ORDER BY NEWID()";

samiasoft
چهارشنبه 17 خرداد 1396, 19:12 عصر
دوستان من این دستور رو استفاده کردم و به خوبی ردیف رندوم رو انتخاب میکنه

cmd.CommandText = "select rand,Field1,Field2 from Table2 order by rnd(-[rand]*Time()) ";

به نظرتون این راه خوبیه؟ یوقت تکراری درنیاد این؟:لبخند:

_behnam_
چهارشنبه 17 خرداد 1396, 20:59 عصر
سلام.
اگه خیلی مهم هستش ک تکراری نیاد
عدد رو توی توی سی شارپ با کلاس Random تولید کن. توی یه لیست نگهش دار. بعد عدد رو توی کوئری sql قرار بده و توی بانک جستجو کن. دفعه بعد ک عدد رندوم تولید کردی اول توی لیستی ک اعداد رندوم توش نگه داری کردی بررسی کن ک عدد قبلا تولید شده یا نه ، اگه نبودش دوباره توی بانک جستجو کن.
درضمن شما میخواید یدونه رکورد رو فقط از بانک بگیرید؟!
توی کوئری ک بالا قرار دادید تمام 3000 رکورد شما برگشت داده میشه که!!! شما باید از where یا top استفاده کنید