对DataTable C#进行排序

noo*_*mer 2 c# database sorting datatable winforms

我有一个包含相应名称和分数的dataTable .我想根据分数对它进行排序.

这是DB.cs中的代码:

public class DB
    {
        public DataTable GetData()
        {
            string spName = "GetTime";
            Connection.Open();

            SqlCommand command = new SqlCommand(spName, Connection);
            command.CommandType = CommandType.StoredProcedure;

            SqlDataReader reader = command.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Time");

            while (reader.Read())
            {
                DataRow dr = dt.NewRow();
                dr["Name"] = Convert.ToString(reader["name"]);
                dr["Time"] = Convert.ToInt32(reader["timeScore"]);
                dt.Rows.Add(dr);
            }
            Connection.Close();
            return dt;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是在Form3.cs上

public partial class Form3 : Form
    {
        private Form2 form2;
        public Form3()
        {
            InitializeComponent();
            loadData();
        }

        public void loadData()
        {
            form2 = new Form2(); 
            DataTable dt2 = form2.db.GetData();
            dgvScore.DataSource = dt2;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能在没有comparerJava的情况下对它进行排序?我只想要一个简单的算法答案.感谢您的支持!

小智 10

你不需要遍历读者:

SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地对defaultView进行排序:

dt.DefaultView.Sort = "timeScore desc";
Run Code Online (Sandbox Code Playgroud)