如何检查数据库中是否已存在某些数据?

时间:2019-07-15 07:17:56

标签: c# html asp.net-mvc entity-framework

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

我尝试运行它,但是现在我总是遇到找不到本地主机的错误。

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();
        }
}

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

1 个答案:

答案 0 :(得分:1)

可以请您检查一下这种方法吗? 认为CodeResult表中列的名称,其中Code的值正在保存。

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可用于检查值