首页 > 解决方案 > 如何检查某些数据是否已经在数据库中?

问题描述

我现在正在为我的实习做一个项目,我想知道如何从 html 和数据库中获取数据,并比较 html 数据是否已经存在于数据库中。

我试图运行它,但现在我总是得到 localhost not found 错误。

HTML

编辑:上下文和数据库工作正常。

@{
    ViewData["Title"] = "Home Page";
}

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Starter</title>

    <style>
        p {
            margin-top: 30%;
            margin-left: 20%;
            margin-right: 20%;
            font-family: Arial;
            font-size: 25px;
            text-align: center;
        }

        #Code {
            border: 2px solid black;
        }
    </style>



</head>
<body>
    <h1>249765876358312345655</h1>

        <p>

            Eingabe des Maschinen Codes:
            <br />
<!-- Here is the important stuff for this aka HTML data-->
            <input id="Code"
                   name="code"
                   pattern=""
                   size="30"
                   spellcheck="false"
                   title="Maschine Code"
                   value="">
        </p>



    <script>
        var x = document.getElementById("Code");
        x.addEventListener('input', function (event) {
            x = document.getElementById("Code").value;
            let vars = x;
            let digits = vars.match(/^\d{13}(\d{6})\d{2}$/)[1];
            let stringDigits = digits.toString();

            if (stringDigits.length == 6 && vars.length == 21) {

                window.location.href = '/home/Kontrolle';
                document.getElementById("Code").innerHTML = "";
                localStorage.setItem("Code_Kurz", stringDigits);
            }
        }
        );



    </script>

</body>


</html>



控制器

namespace Qualitätskontrolle.Controllers
{
    public class HomeController : Controller
    {

        Boolean newID;

        [HttpPost]
        public IActionResult StartPage(string Code)
        {
            try
            {
                ViewData["Code"] = Code;
                ApplicationDbContext dbContext = new ApplicationDbContext();
                var Ergebnisse = dbContext.Result.ToArray();

                for (int i = 0; i < Ergebnisse.Length; i++)
                {
                    if (!Ergebnisse[i].Equals(ViewData["Code"]))
                    {
                        //Create New Page
                        newID = true;
                    }
                    else
                    {
                        newID = false;
                    }
                    return View();
                }
            }
            catch
            {
                return View();
            }

            return View();
        }
}

结果应该是根据新代码还是旧代码打开一个新站点。

标签: c#htmlasp.net-mvcentity-framework

解决方案


你能用这种方法检查一下吗?考虑到正在保存的值是表中Code的列的名称。ResultCode

var Ergebnisse = dbContext.Result.FirstOrDefault(x => x["Code"] == ViewData["Code"].ToString());
if(Ergebnisse != null)
{
   // Means the item with same code exist
}
else
{
   // Means the item with same code is not exist
}

因此,上面的代码将检查具有值的行是代码列,该值等于我们给出的值[ViewData["Code"]],如果没有找到这样的值,那么 null 将被分配给Ergebnisse。一个简单的if..else可以用来检查值


推荐阅读