PDA

View Full Version : سورت صعودی دیتاتایپ Char در دیتاگرید



faramarz_s
پنج شنبه 27 فروردین 1383, 20:23 عصر
من تایپ فیلد تاریخ در یکی از جداول دیتابیس را Char انتخاب نموده ام.برای سورت صعودی
بهترین راه پیشنهادی شما چیست؟
در واقع هنگام نمایش باید براساس تاریخ دیتاگریدسورت شود. :roll:

Abbas Arizi
پنج شنبه 27 فروردین 1383, 20:31 عصر
میتونی توی دیتابیس یه فیلد تاریخ هم کنار اون قرار بدی تا پردازشها به صورت پشت صحنه روی اون انجام بشه و از فیلد کاراکتری فقط برای نمایش استفاده کنی.

faramarz_s
پنج شنبه 27 فروردین 1383, 20:36 عصر
خب دراینصورت آن فیلد خودش باید تاریخ را اتوماتیک ایجاد کرده و در دیتابیس ذخیره کند؟
چنین دیتاتایپی داریم؟

Abbas Arizi
پنج شنبه 27 فروردین 1383, 20:41 عصر
فکر کنم من منظورت رو درست متوجه نشده‌ام. اگه ممکنه کاری که میخوای انجام بدی رو دقیق تر بگو. :oops:
به هر حال توی همه بانکهای اطلاعاتی نوع تاریخ وجود داره. توی اسکوئل سرور نوع DateTime

Spoofed
پنج شنبه 27 فروردین 1383, 21:41 عصر
خب دراینصورت آن فیلد خودش باید تاریخ را اتوماتیک ایجاد کرده و در دیتابیس ذخیره کند؟
چنین دیتاتایپی داریم؟

سعی کنید تاریخ فارسی را به صورت برای مثال 05/01/1383 ذخیره کنید و نه به صورت 5/1/1383 . یعنی این صفرها لحاظ شوند. به این صورت با سورت تاریخ فارسی از نوع char مشکلی نخواهید داشت.

faramarz_s
جمعه 28 فروردین 1383, 10:27 صبح
این را میدانستم و همین کار را می کردم.
اما سوال بنده نحوه سورت بود نه نحوه نمایش
من فکر می کنم راهی باشد :flower:
در هرصورت تشکر

faramarz_s
جمعه 28 فروردین 1383, 10:28 صبح
در ضمن دیتابیس من MS Sql Server 2000 هست.

faramarz_s
جمعه 28 فروردین 1383, 10:45 صبح
http://authors.aspalliance.com/olson/code/multisort/multisort.aspx?c=2&d=0&ls=1:0
نمونه ای عالی منتها برای سورت دیتا تایپ nchar چگونه باید عمل نمود؟

Spoofed
جمعه 28 فروردین 1383, 11:02 صبح
عزیزم!
نحوه ی سورت مانند قبل است . order by را در عبارت اس کیو ال فراموش نکنید (همین).
موفق باشید.

faramarz_s
جمعه 28 فروردین 1383, 11:07 صبح
پس در صورت:

تاریخ فارسی را به صورت برای مثال 05/01/1383 ذخیره کنید خودش سورت را درست انجام می دهد.
تشکر

Spoofed
جمعه 28 فروردین 1383, 11:10 صبح
دقیقا همینطور است. بهتر است یکبار تست کنید و نتیجه را اینجا اعلام نمایید. :)

faramarz_s
یک شنبه 30 فروردین 1383, 17:28 عصر
http://Boein.europe.webmatrixhosting.net/ASPNET/01.GIF


در حالت ASC:
http://Boein.europe.webmatrixhosting.net/ASPNET/asc.GIF


خوب که دقت کنید بر اساس عدد روز سورت می کند و نسبت به عدد ماه بی توجه است.

faramarz_s
یک شنبه 30 فروردین 1383, 17:30 عصر
SELECT NewsID,subject,Sentdate FROM tbl "+
"ORDER BY SentDate DESC

Abbas Arizi
یک شنبه 30 فروردین 1383, 17:47 عصر
با این روش که شما عمل میکنی اصلا مرتب سازی بر اساس تاریخ انجام نمیشه بلکه بر اساس کاراکترها مرتب میشه. فقط وقتی نوع داده تاریخ باشه امکان سورت بر حسب تاریخ ممکنه.

faramarz_s
یک شنبه 30 فروردین 1383, 18:43 عصر
نه عباس آقا امکانش هست.می دونید اگر شما سال/ماه/روز را در فیلد ورود یا ویرایش وارد کنید درست سورت می شود.
اما کدوم ایرانی اول سال را را در تاریخش می نویسه بعد ماه را.
83/02/01

faramarz_s
یک شنبه 30 فروردین 1383, 18:47 عصر
http://boein.europe.webmatrixhosting.net/ASPNET/02.GIF


با همان Order by کاملا درست کار میکنه :|

اما همانطور که گفتم کدام ایرانی وقتی تاریخ شمسی را می خواهد بنویسد اول سال را می نویسد؟این مهمه برای
سیاستگذاری کاربران :flower:

faramarz_s
دوشنبه 31 فروردین 1383, 22:53 عصر
البته میشه با یک تابع ساده کاربران فارسی زبان تاریخ را به فرمت زیر وراد کنه
12/01/83
آنگاه ما جاهاش را عوض کنیم و بعد بر اساس آن سورت کنیم :mrgreen: خیلی راحت

rsalimian
شنبه 05 اردیبهشت 1383, 12:54 عصر
من که همچین مشکلی با تاریخ نداشتم.
تاریخ را از نوع chr گرفتم.توی دیتابیس هم بصورت yyyy/mm/dd ذخیره میشه. و موقع نمایش هم درست نمایش داده میشه. سورت هم مشکلی نداره.
من نفهمیدم مشکل شما چی بود (:D)