在網上找了一個在後台重新對DataTable排序的方法(之所以不在數據庫是因為我生成的是報表,寫了存儲過程用的表變量,order by也要用變量,死活拼不起來,sql能力沒過關,動態sql也試了)
sql的網址:sql將查詢的結果集一次性插入到表變量中
網址:DataTable中使用Order By排序與Where過濾
/// <summary>
/// DataTable中使用Order By排序與Where過濾
/// </summary>
private void Bind()
{
//這裡構造一個數據源
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(System.String));
dt.Columns.Add("uName", typeof(System.String));
dt.Columns.Add("uDate", typeof(System.DateTime));
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i.ToString();
dr["uName"] = "name" + i;
dt.Rows.Add(dr);
}
dt.DefaultView.Sort = "ID asc";//相當於Order By
dt.DefaultView.RowFilter = "ID>5";//相當於Where
GridView1.DataSource = dt;
GridView1.DataBind();
}
後台調試了一下發現dt的排序沒變,這時需要加一句dt = dt.DefaultView.ToTable();