c# - 如何对存储过程的结果进行排序并返回js?
问题描述
if (gameName.Contains("Game1"))
{
using (var conn = new SqlConnection(SessionWrapper.BackOfficeSecondaryDbConnectionString))
{
var query = @"crm_Game_category";
var param = new DynamicParameters();
param.Add("@DateFrom", dateFrom, dbType: DbType.DateTime);
param.Add("@DateTo", dateTo, dbType: DbType.DateTime);
param.Add("@Sort", 1);
var GameReport = conn.Query<GameLogCategoryReportModel>(query, param, commandType: CommandType.StoredProcedure);
if (GameReport.Count() > 0)
{
foreach (var GameLog in GameReport)
{
result.Add(GameLog);
}
}
}
}
if (categoryName.Contains("Game2"))
{
using (var conn = new SqlConnection(SessionWrapper.BackOfficeSecondaryDbConnectionString))
{
var query = @"crm_Game_CSOfficer";
var param = new DynamicParameters();
param.Add("@DateFrom", dateFrom, dbType: DbType.DateTime);
param.Add("@DateTo", dateTo, dbType: DbType.DateTime);
param.Add("@Sort", 2);
var GameReport = conn.Query<GameLogCategoryReportModel>(query, param, commandType: CommandType.StoredProcedure);
if (GameReport.Count() > 0)
{
foreach (var GameLog in GameReport)
{
result.Add(GameLog);
}
}
}
}
if (categoryName.Contains("Game3"))
{
using (var conn = new SqlConnection(SessionWrapper.BackOfficeSecondaryDbConnectionString))
{
var query = @"crm_CallLog_Game_FCR";
var param = new DynamicParameters();
param.Add("@DateFrom", dateFrom, dbType: DbType.DateTime);
param.Add("@DateTo", dateTo, dbType: DbType.DateTime);
param.Add("@Sort", 3);
var GameReport = conn.Query<GameLogCategoryReportModel>(query, param, commandType: CommandType.StoredProcedure);
if (GameReport.Count() > 0)
{
foreach (var GameLog in GameReport)
{
result.Add(GameLog);
}
}
}
}
return JsonConvert.SerializeObject(result.OrderBy(x => x.Sort));
public class GameLogCategoryReportModel
{
public string Category { get; set; }
public int Sort { get; set; }
}
我希望结果显示 Game1 Game2 Game3
我这样做是为了按顺序对所有 3 个存储过程进行排序。但它不会按顺序改变。我也试过result.Sort()
了,但我也得到了同样的结果。是否有任何错误,因为我尝试在存储过程中使用 order by,但它仍然无法正常工作。您还有其他方法可以建议吗?
解决方案
您需要根据排序结果创建一个新列表。这应该可以解决问题
return JsonConvert.SerializeObject(result.OrderBy(x => x.Sort).ToList());
推荐阅读
- javascript - 即使 URL 包含参数,match.params 也会返回空
- redis - Redis 内存使用结果不如预期
- typeorm - 执行 .findOne() 时,没有显示有关系的字段
- angular - Angular Material Datepicker:我们可以显示多个日历吗?
- angular - 从 onDeactivate 访问 p-inplace 内容值
- sql-server - ApplicationIntent=ReadOnly 缺失
- hadoop - Hadoop:直接调用时start-dfs.sh不起作用
- firebase - Flutter - 使用提供程序包侦听 Firebase 用户的用户配置文件(Firestore)中的数据更改
- android - 设置与edittext中的文本大小相同的可绘制文本
- java - 如何使用准备好的语句更新 ARRAY 的单个元素?