如何从函数中对查询结果进行排序:
public IEnumerable<dynamic> SelectTsql(object parameters)
{
using (var Connection = new SqlConnection(ConnectionString))
{
Connection.Open();
var dynamicpar = new DynamicParameters(parameters);
return Connection.Query("[dbo].[tsql]", dynamicpar, commandType: CommandType.StoredProcedure);
}
}
var unsorted = SelectTsql();
var sorted = unsorted.OrderBy("column");
我不知道编译时的列名,列名来自SQL(MSSQL)。
因为它不是普通的SELECT * FROM dbo.table
,Dapper最后可以添加ORDER BY
,但存储过程和返回类型是IEnumerable<dynamic>
我的数据排序有问题(在C#上)。
[dbo]. [tsql]
返回一个表格,我希望按照LINQ
列的方式对结果进行排序,并将名称指定为函数OrderBy的字符串。
修改
变量sorted
用作MVC3 Action中网格(Dojox)的JSON数据源。
[HttpGet]
public ActionResult Json(string sortcolumn)
{
var writer = new JsonWriter();
var data = SelectTsql( new { foo = 1 } );
var sorted = data.OrderBy(sortcolumn);
var json = writer.Write(sorted);
return Content(json, "application/json");
}
当我们显示网格时,将从数据库中检索列名称(在网格中)。在网格中选择列标题时,会使用用于排序的变量。
我知道这不是最佳的,因为json包含所有列,我现在只显示其中的一些,但这不是重点。