在網上找了一個在後台重新對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();