gpt4 book ai didi

c# - 使用 C# 对 (My)SQL 结果进行排序的想法

转载 作者:行者123 更新时间:2023-11-29 06:47:20 25 4
gpt4 key购买 nike

目标。

根据 Controller 传递的参数对 MySQL 提供的结果进行排序。

场景。

我的应用程序中有一些 Controller ,其中一些 Controller 将数据库中的数据带给用户。

当我访问 ~/Products/Compare?Id=1&OrderBy=lowestPriceToBiggest 时我想显示 ID 为 1 的产品的比较按 lowestPriceToBiggest 排序.

总而言之,我想让我的程序的 ORDER BY根据参数值 OrderBy 行事通过 URL 传递。

聚光灯。

我的 ProductsController是:

public ActionResult Products(Nullable<int> id, string orderBy)
{
List<Products> productsList = Build.ProductsList(id, orderBy);
return View(productsList);
}

我的查询是:

Select product.Name As productName
From app_products As product
Where product.Id = 1
Order By product.Price Asc

如您所见,到目前为止,我的 C# 代码和 SQL 代码之间没有通信来对产品列表进行排序。我现在卡住了。我怎样才能隐藏像biggestPriceToLowest这样的东西由参数提供给 SQL 代码?我的意思是,orderBy参数返回我 biggestPriceToLowest我需要将其转换为

[...]
Order By product.Price Desc

你能看到 Desc ?如何转换字符串 biggestPriceToLowestDesc 的 URL 提供, 作为参数发送到我的程序?

只是强调一下:没有任何操作,orderBy我的 Controller 的参数正在发送 biggestPriceToLowest (字符串)或 lowestPriceToBiggest (字符串)到 Build.ProductsList() , 但我需要将这些字符串转换为 DescAsc分别。

我已经想到了什么。

我想做一个 switch将每个字符串转换为 SQL 代码——但我不知道这是否是一种好的做法,或者我正在做的是否是正确/最佳的方法。

最后,问题是什么?

根据我的情况,我必须做什么?开关?有什么我不知道的技巧吗?

技术细节。

我正在使用 C# + MVC 4 + Asp.Net + Razor Engine + MySQL。

最佳答案

在你的 Action 中我会做这样的事情并根据需要添加 case 语句

switch(orderBy) 
{
case "priceASC": return productsList.OrderBy(x =>x.Price);
default: return productList
}

关于c# - 使用 C# 对 (My)SQL 结果进行排序的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com