PDA

View Full Version : نمایش 20 رکورد آخری



mohammad2407
پنج شنبه 15 خرداد 1393, 20:06 عصر
سلام دوستان من با کد زیر اطلاعات از دیتابیس میخونم که به صورت لینک هست


var db = new tahvilDataContext();
var tahvil_query = db.tahvils;
this.dataGridView1.DataSource = tahvil_query;


حالا میخوام این کد رو به صورتی تغییر بدم که فقط 20 رکورد آخر برای من نمایش بده

چون دیتابیس من خیلی سنگین است

فقط اگر میشه به صورت لینک آموزش بدید ADO نمیخوام


ممنون:خجالت:

pesare
پنج شنبه 15 خرداد 1393, 20:15 عصر
شما اول رکورد ها رو بر اساس نزولی مرتب کن و بعد 20 رکورد اول رو انتخاب کن
یعنی ابتدا Order By Desc و سپس Select Top 20

mohammad2407
پنج شنبه 15 خرداد 1393, 20:26 عصر
متوجه نشدم میخوام به همین صورتی باشه که وارد تیبل شدن

pesare
پنج شنبه 15 خرداد 1393, 20:36 عصر
رکوردها بصورت صعودی در جداول ذخیره میشن , یعنی رکورد شماره 1 اول و بعد شماره 2 و .... , پس روند ذخیره شدن صعودیه , از یک به شماره های بزرگتر , حالا شما میخوایی 20 تا رکورد آخر رو بدست بیاری اول باید رکوردها رو بصورت نزولی انتخاب کنی و بعد 20 تای آخر رو استخراج کنی

mohammad2407
پنج شنبه 15 خرداد 1393, 20:50 عصر
حالا نمیشه کدی نوشت که به همون صورت صعودی 20 تای آخر رو نمایش بده

Mahmoud.Afrad
پنج شنبه 15 خرداد 1393, 21:19 عصر
در sql دستوری برای اینکار وجود نداره(به همین دلیل در LinqToSql هم نمیتونی این کار رو بکنی) پس باید ترتیب برعکس بشه، به تعداد مورد نظر سلکت(take ) بشه، در آخر میتونی ترتیب رو دوباره برعکس کنی.
البته در LinqToObject میشه از انتهای لیست چند آیتم رو دریافت کرد.

mohammad2407
پنج شنبه 15 خرداد 1393, 21:37 عصر
اقا محمود میشه لطف کنی یک مثال برای من بزنی

Mahmoud.Afrad
پنج شنبه 15 خرداد 1393, 22:00 عصر
var tahvil_query = db.tahvils.OrderByDescending(i => i.id).Take(20).OrderBy(i => i.id);

gjmkdyttyhujk
پنج شنبه 15 خرداد 1393, 23:48 عصر
شما میتونید یک فیلد با نام ردیف به جدولتون اضافه کنید و اون رو از نوع identity قرار بدید و identity increment رو 1 قرار بدید.اینطوری هر رکوردی که اضافه میکنید مقدار فیلد ردیفش یدونه از اونی که آخرین بار اضافه شده بیشتر میشه. حالا رکوردهای جدولتونو به صورت نزولی براساس فیلد ردیف مرتب کنید و بعد 20 تای اول رو بردارید.