PDA

View Full Version : سوال: شرایط ایجاد مرتب سازی کامل



salehvasaleh
پنج شنبه 19 مرداد 1391, 14:27 عصر
دوستان من برای مرتب سازی دیتا گرید از کد زیر استفاده کردم :


SqlCommand com = new SqlCommand("select * from Table_1 order by pass", con);

منتها یک مشکلی هست اینه که وقتی فیلدهای مرتب شده ستون pass نشون داده میشن اعداد 2 و 22 کنار هم قرار می گیرند و بعد عددی مثل 3 نشون داده می شه. در صورتی که طبیعه می بایست 2 و 3 و 22 باشه.
علتش چی می تونه باشه؟ آیا این احتمال هست ک هچون نوع داده ها در بانک nvarchar نیست این مشکل پیش اومده؟
ممنون

mousa1992
پنج شنبه 19 مرداد 1391, 14:46 عصر
دلیلش اینه که شما بر حسب پسورد مرتب سازی رو انجام دادین که احتمالا هر نوعی به جز عددی است طبیعتا دچار مشکل میشه ( مثلا مقدار رشته ای 2 از 10 بزرگتره )

hakim22
پنج شنبه 19 مرداد 1391, 15:38 عصر
در مواردی که یک رشته را مرتب می کنید قوانین ترتیب اعداد صادق نیست .
شما هم می توانید قابلیت sort رو به دلخواه تغییر بدید تا بر اساس قوانین دیگری چینش انجام شود
هم می توانید خودتان یک تابع sort طراحی کنید (با استفاده از interface مربوط به sort)

Mahmoud Zaad
پنج شنبه 19 مرداد 1391, 16:27 عصر
سلام

علاوه بر موضوعی که دوستمون اشاره کردن، بهتره ترتیب نزولی(desc) یا صعودی(asc) بودن رو مشخص کنید

select * from Table_1 order by pass asc

یا

select * from Table_1 order by pass desc

salehvasaleh
پنج شنبه 19 مرداد 1391, 17:17 عصر
سلام

علاوه بر موضوعی که دوستمون اشاره کردن، بهتره ترتیب نزولی(desc) یا صعودی(asc) بودن رو مشخص کنید

select * from Table_1 order by pass asc

یا

select * from Table_1 order by pass desc
ممنون.خب ببینید من الان کد زیر رو نوشتم :


SqlCommand com = new SqlCommand("select * from Table_1 order by pass asc", con);

ولی جواب خروجی مرتب شده این هست که در عکس می بینید :
http://vup.kuheo.com/pic/cd1b059424d5.jpg
باید چیکار کنم؟؟ / ممنون

Mahmoud Zaad
پنج شنبه 19 مرداد 1391, 18:13 عصر
عرض کردم مطلب من علاوه بر مطالب دوستان هست، یعنی در واقع مشکل اصلی اینه که نوع داده ای عددی نیست. برای امتحان نوع داده ای رو مثلا به int تغییر بدید و نتیجه رو ببینید.

salehvasaleh
پنج شنبه 19 مرداد 1391, 18:22 عصر
عرض کردم مطلب من علاوه بر مطالب دوستان هست، یعنی در واقع مشکل اصلی اینه که نوع داده ای عددی نیست. برای امتحان نوع داده ای رو مثلا به int تغییر بدید و نتیجه رو ببینید.
درسته کاملا حق با شماست تازه متوجه شدم باید به int تغییر کنه.ممنون