مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
با سلام به دوستان
من یه دیتاگریدویو دارم که اطلاعاتش رو از بانک میخونه یکی از ستونها فقط حاوی عدد ولی فیلدش از نوع رشته در جدول بانک تعریف شده چطوری میشه کاری کرد که با کلیک روی هدر اون ستون اطلاعات به ترتیب عدد مشخص بشه؟
با تشکر
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
دوست عزیز بهتر است که یک کامبوباکس برای مرتب کردن جدولتون بسازید و نام فیلد هایی را که می خواهید جدول براساس آن مرتب شود را در آن وارد کنید،سپس در قسمت commandtext بنویسید ORDER BY FIELD ، سپس آیتم انتخاب شده در کامبوباکس را به عنوان فیلد انتخاب شده به جای FIELDبعد از دستورORDER BY قرار دهید.
در ضمن با توجه به این که شما فیلدها را از نوع رشته ای تعریف کرده اید ،دچار مشکل خواهید شد ، بنابر این بهتر است فیلدی را که می خواهید بر اساس آن جدول را مرتب کنید از نوع عددی در نظر بگیرید.
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
چرا وقتی داده هاش عددی هست کارکتری در نظر گرفتی ؟!
خب همین باعث شده که توی sort کردن به مشکل بربخوری
2 راه :
1 - نوع رو به int تغییر بده
2 - خودت متد sort بنویسی ( چون نا هماهنگی هایی وجود داره توی رشته ها برای مثال "2" بزرگتر از "12" هست )
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول:
نوشته شده توسط
mousa1992
چرا وقتی داده هاش عددی هست کارکتری در نظر گرفتی ؟!
من مجبور بودم چون مشتری میخواست در بعضی موارد عدد هم بتونه وارد کنه. . . چه کار باید میکردم؟
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
خب چرا از کنترل janus استفاده نمیکنی؟
لازم نیست واسه مرتب کردن یا فیلترینگ کد بنویسی
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول:
نوشته شده توسط
setareh masompoor
خب چرا از کنترل janus استفاده نمیکنی؟
لازم نیست واسه مرتب کردن یا فیلترینگ کد بنویسی
کامپوننتش ندارم میشه لینک دانلودش بزاری؟ نسخه آزمایشی نباشه تو روخدا نمی خوام دو روز دیگه به مشکل بخورم . تا حالا هم ازش استفاده نکردم سخت یا ساده؟
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول:
نوشته شده توسط
طبیب دل
با سلام به دوستان
من یه دیتاگریدویو دارم که اطلاعاتش رو از بانک میخونه یکی از ستونها فقط حاوی عدد ولی فیلدش از نوع رشته در جدول بانک تعریف شده چطوری میشه کاری کرد که با کلیک روی هدر اون ستون اطلاعات به ترتیب عدد مشخص بشه؟
با تشکر
با سلام.
از cast برای تبدیل رشته به int استفاده کنید. به این صورت:
"select cast(field1 as int) x from test1 order by x"
در مثال زیر یک جدول به نام test1 با یک فیلد از نوع NvarChar ساخته می شود و اعداد از 1000 تا 0 به صورت رشته در آن قرار می گیرد. سپس با استفاده از cast رشته به صورت عدد انتخاب شده و از 0 تا 1000 مرتب می شود:
//بسم الله الرحمن الرحیم
//اللهم صل علی محمد و آل محمد
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
using ( SqlConnection connection = new SqlConnection("server=.\\sqlExpress;integrated security=true;")){
using (SqlCommand command = new SqlCommand("", connection))
{
Action<string> Execute = (sql) => { command.CommandText = sql; command.ExecuteNonQuery(); };
connection.Open();
Execute("if (exists(select * from sys.tables where name ='test1')) drop table test1;");
Execute("create table test1 (field1 NVarChar(20));");
for (int i = 1000; i > 0; i--)
Execute("insert test1 values ('" + i.ToString() + "');");
command.CommandText = "select cast(field1 as int) x from test1 order by x";
dataGridView1.DataSource = new DataTable();
(dataGridView1.DataSource as DataTable).Load(command.ExecuteReader());
connection.Close();
}//end using comand
}//end using connection
}
}
}
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول:
نوشته شده توسط
مهرداد صفا
با سلام.
از cast برای تبدیل رشته به int استفاده کنید. به این صورت:
"select cast(field1 as int) x from test1 order by x"
اینکارو کردم ولی فقط تو لود اولیه مرتب شدس وفتی روی هدر ستون کلیک میکنی بر اساس رشته مرتب میکنه. . .
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
نقل قول:
نوشته شده توسط
setareh masompoor
خیلی ممنون. ببینید گرید خود ویژوال استدیو این قابلیت داره که با کلیک روی هدر هر ستون گرید بر اساس اون مرتب میشه مشکلم اینجاست که فیلد من از نوع nvarchar و مرتب سازی براساس رشته انجام میده. جانوس این مشکل نداره؟
نقل قول: مرتب کردن دیتاگریدویو با کلیک روی هدر ستونی از نوع رشته البته حاوی عدد؟
دو تا مسئله:
1- اگه میشه بگید چطوری کرکش کنم؟
2- آیا این ورژن رو vs2008 کار میکنه یا نه؟