如何通过浮点数搜索数据库

时间:2018-05-13 22:52:11

标签: c#

我正在努力做搜索者。它应该在表格维修中搜索价格。 我不知道如何解决这个问题。我唯一的想法是使用float.Parse方法将字符串解析为float,但它不起作用。

模型

// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

namespace CallCenterService.Controllers
{
    public class AccountantController : Controller
    {
        private readonly DatabaseContext _context;

        public AccountantController(DatabaseContext context)
        {
            _context = context;
        }
        // GET: /<controller>/


        public async Task<IActionResult> Index(string searchServicePrice, string searchPartsPrice, string searchSummaryPrice)
        {
            var name = from m in _context.Repairs
                       select m;

            if (!String.IsNullOrEmpty(searchServicePrice))
            {
                float.Parse(searchServicePrice, CultureInfo.InvariantCulture.NumberFormat);
                name = name.Where(s => s.Price.Equals(searchServicePrice));
            }

查看

@model IEnumerable<CallCenterService.Models.Repair>
@{
    ViewData["Title"] = "Index";
}

<h2>Index</h2>
<form asp-controller="Accountant" asp-action="Index" method="get">
    <p>
        Service Price : <input type="text" name="searchServicePrice">
        Parts Price : <input type="text"  name="searchPartsPrice">
        Summary Price: <input type="text"  name="searchSummaryPrice">
        <input type="submit" value="Filter" />
    </p>
</form>

1 个答案:

答案 0 :(得分:1)

您需要传递已解析的项目,因为Parse方法返回float。像这样:

float parsedNum = float.Parse(searchServicePrice, CultureInfo.InvariantCulture.NumberFormat);
name = name.Where(s => s.Price.Equals(parsedNum));     

另请查看decimal.Parsedecimal.TryParsefloat.TryParse,因为如果Parse失败,则会引发异常。 TryParse不会抛出异常。