[英]Sorting DataTable C#
我有一個包含相應名稱和分數的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;
}
}
這是在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;
}
}
如果沒有Java中的任何comparer
我應該怎么做才能對它進行排序? 我只想要一個簡單的算法答案。 感謝您的支持!
你不需要遍歷讀者:
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
然后你可以簡單地對defaultView進行排序:
dt.DefaultView.Sort = "timeScore desc";
當您想要對DataTable
進行排序時,必須處理DataView
是DataTable
因此這是一種非常簡單和簡潔的方法來對DataTable
實例進行排序。 我不認為簡潔性會因語義清晰而中斷,但如果您認為它令人困惑,請發表評論。
dt = new DataView(dt, "", "timeScore DESC",
DataViewRowState.CurrentRows).ToTable()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.