我想在存儲過程的結果中對列進行排序,而不必在存儲過程中添加Order By子句。我不希望在執行查詢後對數據進行排序,如果可能,排序應該是查詢的一部分。我有以下代碼:排序存儲過程的結果
public static DataTable RunReport(ReportQuery query) { OffertaDataContext db = new OffertaDataContext(); Report report = (from r in db.Reports where r.Id == (int)query.ReportId select r).Single(); //???: check security clearance. DataSet dataSet = new DataSet(); /* doesn't work, I guess the "Result" table hasn't been created yet; if(!string.IsNullOrEmpty(query.SortField)) { dataSet.DefaultViewManager.DataViewSettings["Result"].Sort = query.SortField + " " + (query.SortAscending ? "ASC" : "DESC"); } */ using (SqlConnection conn = new SqlConnection(Config.ConnectionString)) { conn.Open(); using (SqlCommand exec = conn.CreateCommand()) { using (SqlDataAdapter adapter = new SqlDataAdapter()) { exec.Connection = conn; exec.CommandType = CommandType.StoredProcedure; exec.CommandText = report.ReportProc; adapter.SelectCommand = exec; try { adapter.Fill(dataSet, query.Skip, query.Take, "Result"); } catch (Exception e) { throw e; } finally { conn.Close(); } return dataSet.Tables["Result"]; } } } }
如何添加排序?
謝謝! /Niels
你說「我想排序結果中的一列的存儲過程,而不必在存儲過程中添加Order By子句「,然後」如果可能,排序應該是查詢的一部分「! – 2008-11-27 10:05:45