PDA

View Full Version : نمایش رندوم اطلاعات پایگاه داده ها



pishi-pishi
یک شنبه 16 آبان 1389, 08:47 صبح
سلام
چگونه می توانم خروجی پایگاه داده را به صورت رندوم نمایش بدهم(خروجی پایگاه من یک سری آگهی است میخوام هر بار که دکمه نمایش زده می شود جای آگهی عوض شود آگهی بدون عکس است)

ricky22
یک شنبه 16 آبان 1389, 08:55 صبح
سلام منظورتون اینه که به طور مثال در هر بار واکشی رکوردها به صورت Random اطلاعات از دیتابیس بخوانید؟
یا اطلاعات خوانده شده را به صورت Random نمایش دهید؟
از چه کنترلی برای نمایش استفاده می کنید؟

alonemm
یک شنبه 16 آبان 1389, 09:06 صبح
دوست من از رشته تقاضا زیر استفاده کن :


SELECT * from my_table ORDER BY RAND() LIMIT 25

leila_mahyanet
یک شنبه 16 آبان 1389, 10:05 صبح
به این صورت هم میشه



SELECT * FROM tableName ORDER BY NEWID()

sinsin666
یک شنبه 16 آبان 1389, 12:04 عصر
به این صورت هم میشه





SELECT * FROM tableName ORDER BY NEWID()






این جوری هر بار یکی بر میگردونه اگر چند تا رکورد بتونه برگردونه بهتره کسی کدی نداره واسه این امر...

leila_mahyanet
یک شنبه 16 آبان 1389, 12:11 عصر
این جوری هر بار یکی بر میگردونه اگر چند تا رکورد بتونه برگردونه بهتره کسی کدی نداره واسه این امر...


یه دونه بر نمیگردونه . اتفاقا همه رکوردها رو بر میگردونه . اگر بخوای یکی برگردونه به صورت زیر باید تغییرش بدی :





SELECT TOP 1 * FROM tableName ORDER BY NEWID()



من از هر دو حالت جواب گرفتم . امتحان کنید...

aserfg
یک شنبه 16 آبان 1389, 13:29 عصر
SELECT * FROM tableName ORDER BY NEWID()این دستور رکوردهای جدول tablename رو بر اساس فیلد newid مرتب می کنه.

SELECT TOP 1 * FROM tableName ORDER BY NEWID()این دستور اولین رکورد جدول tablename که بر اساس newid مرتب شده رو بر می گردونه :
در هر دو دستور عملیاتی برای تولید رندوم رکوردها وجود نداره .

استاندارد ترین روش :
تابعی بنویس که هر دفعه بر اساس مقادیر پاس داده شده خروجی datatable داشته باشه مثلا برای خروجی یک فیلد :

public static DataTable getbyrand(int random)
{
}حالا اون پارامتر عددی که به این تابع می فرستی از نوع رندوم باید باشه در رویداد لود صفحه این طور عمل کن :

protected void Page_Load(object sender, EventArgs e)
{ Random r = new Random();
int num = r.Next(1, 50);
GridView1.DataSource = getbyrand(num);
GridView1.DataBind();

}
مقدار 50 رو به صورت پیش فرض گذاشتم شما می تونی به تعداد رکوردهای جدولت این مقدار رو ست کنی