View Full Version : خواندن اطلاعات بصورت random از بانک اطلاعاتی(با کدهایی که پیدا کردم مشکل دارم)
csharpdoost
سه شنبه 27 فروردین 1392, 13:54 عصر
یه جدول با کلید اصلی Autonumber دارم. میخوام بصورت رندم از این جدول رکورد بخونم. اما با کدهایی که با جستجو بدست اوردم مشکل دارم :
SELECT TOP (10) * FROM MyTable
// ORDER BY NEWID()
// SELECT column FROM table
//ORDER BY RANDOM()
//LIMIT 1
// select top 1 percent * from [tablename] order by newid()
// SELECT column FROM table
//ORDER BY RAND()
//LIMIT 5
با همه این کدها امتحان کردم اما همشون خطا میدن . نمیدونم چرا.
tooraj_azizi_1035
سه شنبه 27 فروردین 1392, 14:03 عصر
SELECT TOP 10 Id, Name FROM customerNames ORDER BY NEWID()
csharpdoost
سه شنبه 27 فروردین 1392, 14:28 عصر
SELECT TOP 10 Id, Name FROM customerNames ORDER BY NEWID()
این هم خطا : که درهمه دستورات این خطا رو میده:
102912
veniz2008
سه شنبه 27 فروردین 1392, 15:36 عصر
سلام.
اینطوری بنویس:
SqlConnection con = new SqlConnection("server = .\\md2008;database = Test1;Integrated Security = True");
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 10 Id,F1 from question_TB ORDER BY NEWID() ", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
csharpdoost
سه شنبه 27 فروردین 1392, 16:06 عصر
سلام.
اینطوری بنویس:
SqlConnection con = new SqlConnection("server = .\\md2008;database = Test1;Integrated Security = True");
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 10 Id,F1 from question_TB ORDER BY NEWID() ", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
ممنون ولی بازهم خطامیده این بار :
102919
دیتابیس اکسس هستشه تاثیری که نداره؟
khokhan
سه شنبه 27 فروردین 1392, 16:14 عصر
ممنون ولی بازهم خطامیده این بار :
102919
دیتابیس اکسس هستشه تاثیری که نداره؟
سلام
عزیز جان اینو از اول باستی می گفتی در دیتابیس اکسس به اول نام فیلد یه (rnd )می زارن
اینطوری
SELECT TOP 1 myField, Rnd(myfield) FROM myTable ORDER BY 2
csharpdoost
سه شنبه 27 فروردین 1392, 16:46 عصر
102933دوستان ممنون. ولی چرا با Order by که مینویسم خطا میده.و بدون اون در دیتا گرید اینجوری نشون میده:
یعنی با این دستور :
com.CommandText = "SELECT top 10 Rnd(id) FROM question_TB ";
oda.SelectCommand = com;
102930
و با این دستور خطای زیر :
102932
vistacali
سه شنبه 27 فروردین 1392, 16:50 عصر
سلام من چند مدت پیش نیازی به این کار دارشتم اومدم و دستی این جور روشی رو نوشتم اول با تابع رندم یه عدد بین اون مقادیرم تولید کردم و بعد حالا بر اساس اون عدد تولید شده یه select زدم به پایگاه داده و مقدار مورد نظر رو از اون بیرون کشیدم
csharpdoost
سه شنبه 27 فروردین 1392, 17:02 عصر
سلام من چند مدت پیش نیازی به این کار دارشتم اومدم و دستی این جور روشی رو نوشتم اول با تابع رندم یه عدد بین اون مقادیرم تولید کردم و بعد حالا بر اساس اون عدد تولید شده یه select زدم به پایگاه داده و مقدار مورد نظر رو از اون بیرون کشیدم
این کار یه اشکال داره اون هم وقتیه که کاربر رکوردهایی رو حذف میکنه چون id بصورت Autonumber هستش شما مجبورید بین 1 و ماکزیممID ، رندم بزنید و IDهای زیادی این وسط پاک شده(توسط کاربر) به شما داده برنمگردونه و مجبورید عدد دیگری بفرستید که این کار ممکنه باعث کند شدن برنامه و یا هنگیدن اون منجر بشه.
khokhan
سه شنبه 27 فروردین 1392, 19:29 عصر
دوستان کسی نیست کمکم کنه؟
شاید این نمونه ای که نوشتم بتونه کمکتون کنه :لبخند: البته امید وارم
شاد شاد :لبخند:
csharpdoost
سه شنبه 27 فروردین 1392, 21:14 عصر
واقعا متشکرم.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.